如何比较两个程序的输出,但不使用临时文件?
diff <(/usr/bin/gcc --help) <(/usr/local/bin/gcc --help)
避免使用临时文件有两个好处
- 无需给文件命名。程序员最喜欢的变量名是什么?是
i
!文件名呢?我喜欢aaaaa
- 无需清理
下面是个更复杂的例子(这是我第一次用paste)
。
三个文件,A.txt
、B.txt
和C.txt
分别保存了三本书的信息,我们希望提取数据到电子表格做分析。三个文件的内容如下:
$ cat A.txt Chapters: 13 Pages: 400 $ cat B.txt Chapters: 9 Pages: 700 $ cat C.txt Chapters: 27 Pages: 1400
使用如下命令,即可得到一个csv输出,导入到电子表格。
$ paste -d, <(ls *.txt | sed -e 's/.txt//') \ <(grep -h Chapters *.txt | sed -r 's/^.*: ([0-9]+)$/\1/') \ <(grep -h Pages *.txt | sed -r 's/^.*: ([0-9]+)$/\1/') A,13,400 B,9,700 C,27,1400