如何将程序的输出重定向到 Linux diff 命令

如何将程序的输出重定向到 Linux diff 命令

我有一个写入的程序标准输出有没有办法可以将输出重定向到 Linux差异命令还是我必须将输出写入文件然后进行比较?

例如,我有一组程序的测试输入文件,另一组文件中有相应的预期输出。我想做类似的事情./program < t1.input | diff t1.expected

答案1

您还可以执行以下操作:

./program < t1.input | diff t1.expected -

答案2

在bash中:

diff t1.expected <(./program < t1.input)

答案3

或者使用 bash 的简单方法:

diff <(./program) <(cat t1.expected)

我经常使用更一般的情况

diff <(command1) <(command2)

这两个命令可能类似,除了输入文件不同,或者对同一文件进行操作的程序版本不同。也可以与 gvimdiff 一起使用。

答案4

如果你想比较两个程序的输出差异,zsh 是你的好帮手:

$ diff =(program1 < input1) =(program2 < input2)

相关内容