匹配不同文件中的2个字段

时间:2013-03-04 08:21:35

标签: linux unix join awk

我有2个这样的文件:

档案A:

1,x
2,z
3,y

档案B:

7,b
3,c
9,t
1,m

我想循环浏览File A (第一列)并查看File B (第一列)中是否有匹配使用{ {1}}。

预期将是:

awk

2 个答案:

答案 0 :(得分:3)

只需使用awk

$ awk -F, 'NR==FNR{a[$1];next}($1 in a)' file1 file2
3,c
1,m

管道到sort以获取有序输出:

$ awk -F, 'NR==FNR{a[$1];next}($1 in a)' file1 file2 | sort
1,m
3,c

或者这是join执行(需要对输入文件进行排序)的内容

$ join <(sort file1) <(sort file2) -j1 -t, -o"2.1,2.2"
1,m
3,c

答案 1 :(得分:2)

join -t, -o 1.1,1.2 <(sort fileA) <(sort fileB)