1

我想在两个文件的第一个字段中找到相同的元素。我熟悉 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

我的file2是:

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
4

1 回答 1

3

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

尝试这个:

awk -F'\t' 'FNR==NR{a[$1]++;next}a[$1]' file1 file2
于 2014-08-22T11:48:14.110 回答