awk 比较两个文件并打印文件 1 中的第一个字段

awk 比较两个文件并打印文件 1 中的第一个字段

我有两个这样的文件。

文件1

1:apple
2:banana
3:pineapple
4:guava
5:orange

和文件2像这样

apple
guava
orange

我只想将文件 2 与文件 1 进行比较,并打印文件 2 中缺少的行的第一个字段。

所需输出

3
4

我尝试过的代码,

文件1 <(剪切-d:-f2文件2)

但得到的输出如下

1a2,3
> banana
> pineapple

答案1

使用 Awk 进行关联数组查找怎么样?

awk -F: 'NR==FNR {a[$1]; next} !($2 in a) {print $1}' file2 file1
2
3

答案2

使用grep

grep -vwf file2 file1 | cut -d: -f1
2
3

相关内容