我有一个包含3列的文本文件1。第一列包含一个数字,第二列包含一个单词(可以是像狗一样的st,也可以是像1050这样的数字),第三列是一个包含大写字母的TAG。 我有另一个具有2列的文本文件2。第一列带有数字,第二列带有大写字母的TAG。 我想将文本文件1中的每一行与文本文件2中的每一行进行比较。如果文本文件1中列[3]中的TAG与文本文件2中列[2]中的TAG相同,则我想要将数字存储在文本文件1中,紧随文本文件1中的单词,将文本文件2中的数字存储在文本文件1中。文本文件2中没有重复的TAGS,文本文件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 .
答案 0 :(得分:0)
您可以在awk
中这样操作:
awk 'FNR==NR { h[$2] = $1; next } $3 in h { print $1, h[$3], $2 }' file2 file1
第一部分将文件2中的键和列保存在关联数组(h
)中,第二部分将文件1中的列3与该数组进行比较,并打印相关部分。