比较具有完全相同名称的字段

时间:2014-08-22 11:11:05

标签: awk comparison field diff comm

我想在两个文件的第一个字段中找到相同的元素。我熟悉awk命令

awk 'FNR==NR{a[$1]++;next}a[$1]' file1 file2

但是,如果字段包含包含一个公共元素的多字表达式,则不起作用。例如,我的file1是:

blue and red    20.5
red and green   13.4
yellow and black    10
blue and black  17.2
black and green 21

我的文件2是:

blue and yellow 18
red and green   11.9
yellow and orange   8
brown and black 6.9
organge and yellow  17

上面的命令将产生以下列表:

blue and red    20.5
red and green   13.4
yellow and black    10
brown and black 6.9

我想只有完全匹配

red and green   13.4

1 个答案:

答案 0 :(得分:3)

如果您的数据被tab分开,您应该让awk知道这一点,否则,awk无法正确处理这些数据。

试试这个:

awk -F'\t' 'FNR==NR{a[$1]++;next}a[$1]' file1 file2