如何比较两个unix命令的输出以找出差异?

jon*_*rry 13 unix

我不想创建新文件.我想完成类似的事情:

cmd1 > a
cmd2 > b
cat a b b | sort | uniq -u
Run Code Online (Sandbox Code Playgroud)

但不使用文件a和b.

wno*_*ise 29

Unix实用程序通常是面向文件的,所以没有什么可以做你想要的.

但是,zsh可以使用以下语法自动创建临时文件:

diff =(cmd1) =(cmd2)

它还可以创建临时命名管道(或使用特殊文件/dev/fdn来引用匿名管道)

diff <(cmd1) <(cmd2)

但是,许多人会diff调用lseek()他们的输入,因此不能使用命名管道.

(diff通常是一个更有用的命令,用于比较与上面的管道非常相似的输出.)

有关更多详细信息,请参见"zshexpn"手册页的"进程替换"部分.

  • `<(cmd)`语法是一个相当标准的语法,也被更广泛使用的shell(如bash)支持.我过去曾经使用过diff而没有注意到任何问题. (9认同)