【发布时间】:2012-08-23 18:04:46
【问题描述】:
请有人帮忙比较两个文件, 我使用了以下命令,但我无法成功,
awk -F, 'NR == FNR {a[$1,$2]; next} (($1,$2) in a )' temp1.dat temp2.dat
这是我的需要, 需要比较以下两个 dat 文件中的前两个字段,并将结果按预期合并到 file3 中(第一个字段,第二个字段,temp1.dat 的 3 个字段,temp2.dat 的 3 个字段)
文件1:temp1.dat
A, AB,100
B,BB,200
C,CC,300
文件2:temp2.dat
A,AB,10
C,CC,30
D,DF, 4
文件3:输出
A, AB,100,10
C,CC,300,30
【问题讨论】:
-
为什么不只是
diff file1 file2? -
我只需要 file3 匹配列 H2CO3。
-
使用join命令。
-
对于未来的读者和@AmitNaidu——
join命令是不够的,因为条件规定两列必须匹配。当然,sed可以首先用于组合键列,然后,在对新组合键列上的每个文件进行排序之后,join就足够了(最终的sed过滤器可以再次分离连接的列)。对于较大的文件,也许 join 会更有效,尤其是当它们已经在两列上排序时。