gpt4 book ai didi

bash - 使用命令管道作为 diff 的参数

转载 作者:行者123 更新时间:2023-11-29 08:41:14 24 4
gpt4 key购买 nike

我在完成这个简单的任务时遇到了麻烦:

cat file | grep -E ^[0-9]+$ > file_grep
diff file file_grep

问题是,我想在没有 file_grep 的情况下执行此操作

我试过:

diff file `cat file | grep -E ^[0-9]+$`

diff file "`cat file | grep -E ^[0-9]+$`"

和其他一些组合 :-) 但我无法让它工作。当 diff 获取额外参数时,我总是会出错,该参数是由 grep 过滤的文件内容。

当我想从这样的脚本中echo命令输出时(使用反引号转义),类似的东西总是对我有用:

echo `ls`

谢谢

最佳答案

如果您使用的是 bash:

diff file <(grep -E '^[0-9]+$' file)

<(COMMAND) sequence 扩展为伪文件的名称(例如 /dev/fd/63 ),您可以从中读取命令的输出。

但对于这种特殊情况,ruakh 的解决方案更为简单。它利用了 - 的事实作为 diff 的参数使其读取其标准输入。 <(COMMAND)diff 的两个参数时语法变得更有用是命令输出,如:

diff <(this_command) <(that_command)

关于bash - 使用命令管道作为 diff 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9847479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com