如何找出两个文件之间的共同元素?

如何找出两个文件之间的共同元素?

例如,我有 2 个包含以下信息的文件:

文件#1:

12
13
14
15

文件#2:

12 1
13 2
14 2
15 6
16 7
17 8

输出文件:

1
2
2
6

在输出文件中,我只需要文件 #2 的第二列值,该值与文件 #1 的第一列匹配。 Linux 中有相关的实用函数吗?我是 shell 脚本新手,有人可以帮助我吗?

答案1

您可以使用该join命令来连接特定列上的文件,并awk解析输出。

要在第 1 列上连接这些文件,请将参数传递-j 1给连接命令:

usr@srv % join -j 1 test test2 
12 1

13 2

14 2

15 6

然后用于awk仅打印第二列:

usr@srv % join -j 1 test test2 | awk '{print $2}'
1

2

2

6

答案2

awk 'NR==FNR{c[$1]++;next};c[$1] == 1' file1.txt file2.txt | awk ' { print $2 } '

相关内容