如何在UNIX文本文件中比较行并将它们添加到另一个文本文件中



我有一个文本文件1,该文件1具有3列。第一列包含一个数字,第二个a单词(可以是像狗之类的刺,或者像1050之类的数字(,第三列是大写字母中的标签。我还有另一个具有2列的文本文件2。第一列有一个数字,第二列具有大写字母的标签。我想将文本文件1中的每个行与文本文件中的每个行进行比较。想要将数字存储在文本文件2中的文本文件1旁边的文本2中的数字1旁边的文本文件1旁边的数字1旁边。文本文件2中没有重复的标签,并且文本文件1中没有重复的单词。插图:

文本文件1

2    2737    HPL
32   hello   PLS
3    world   PLS
323  .       OPS

文本文件2

342  HPL
56   PLS
342  DCC
4    OPS

我想要:

2   342  2737
32  56   hello
3   56   world
323 4  .

您可以在awk中这样做:

awk 'FNR==NR { h[$2] = $1; next } $3 in h { print $1, h[$3], $2 }' file2 file1

第一部分将密钥和列从文件2中的密钥和列保存在关联数组(h(中,第二部分将第3列从文件1比较此数组并打印相关的部分。

相关内容

  • 没有找到相关文章

最新更新