假设我有两个如下的文件:
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
s 视为一维事物,但这里它是二维的。我的意思是 diff 的输入必须同时来自两个不同的来源。
起点可能是 awk 脚本将读取两个文件,进行过滤并将结果保存在临时关联数组中,接下来它将调用 diff 并提供其输入。
答案1
尝试:
diff -u <(awk '{print $1}' file-one) <(awk '{print $1}' file-two)
答案2
很有可能它join
会做你想做的事:
join <(sort file1) <(sort file2)
但由于您没有说清楚真正想要实现的目标,因此很难确定哪些选项可能是合适的。