将两个不同的输出传输到一个带有两个输入的命令中

时间:2014-02-26 20:01:05

标签: bash shell unix pipe

看起来这应该很简单,但对我来说这样做并不直观。我有两个文件,我想区分他们的第一列(这是一个例子,我敢肯定还有其他方法可以做到这一点)。所以我可以cut -d, -f1 file1 > tmp1cut -d, -f1 file2 > tmp2然后diff tmp1 tmp2。但是我想在不使用tmp文件的情况下这样做。

我期待的那种事情的例子是((cut -d, -f1 file1), (cut -d, -f1 file2)) > diff,但这不是真正的代码。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:9)

好消息!您可以在bash中使用process substitution

diff <(cut -d, -f1 file1) <(cut -d, -f1 file2)

答案 1 :(得分:1)

另一种方法是:

cut -d, -f1 file1 | diff - <(cut -d, -f1 file2)