例如,我有 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 } '