如何将命令输出与文本文件进行比较?

如何将命令输出与文本文件进行比较?

我正在学习一些编程面试问题,因此我编写了 FizzBu​​zz 代码。我试图将程序的输出与 .txt 文件中已知的良好输出进行比较。

如何检查node fizzbuzz.js输出是否逐行等于expected-output.txt文件,甚至等于diff它们?

我已经按照重复问题中的建议尝试过此操作:

diff -u expected-output.txt <(node fizzbuzz.js)

diff没有输出任何内容,并且似乎永远不会退出,直到我^C.该程序本身运行良好,也是如此,只是由于某种原因diff -u expected-output.txt <(cat test.txt)它似乎运行得不好。node

答案1

在 Bash/ksh/Zsh 中:

diff -u file.txt <(some command)

<(some command)构造称为流程替代,它使得输出一些命令就像从文件中一样可用,因此diff可以读取它。 (它从命令设置管道并扩展为命名管道的名称或)。/dev/fd/N

类似地,>(some command)可用于重定向写入命令。

相关内容