寻找棘手的一个class轮来获得awk输出的差异

可以说我有两个文件,如下所示:

file1 a 23 b 34 c 47 file2 a justin_beiber_sucks b segmentation fault c jackson d nop 

现在我想要的是得到两个文件的第一列的差异。 我现在就这样做

 $cat file1 awk '{print $1}'> f1 $cat file2 awk '{print $1}'> f2 $diff -u f1 f2 

但是这种方法感觉迟钝了。 任何棘手的方法呢?

问题是我总是把pipe视为一维的东西,但在这里是二维的。 我的意思是差异的input必须同时来自两个不同的来源。

起点可能是awk脚本会读取这两个文件,过滤并将结果保存在一个临时关联数组中,接下来它将调用diff并将提供其input。

尝试:

diff -u <(awk '{print $1}' file-one) <(awk '{print $1}' file-two)

join会做你想做的事情的机会是很好的:

 join <(sort file1) <(sort file2) 

但是既然你没有说出你真正想要完成的事情,就很难确定哪些select可能是合适的。