可以说我有两个文件,如下所示:
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可能是合适的。