需要perl / shell脚本来比较2个文件

时间:2013-12-19 11:50:17

标签: perl shell sed awk grep

嗨我有2个文件如下,我需要脚本来比较那些并找到匹配。我怎样才能做到这一点?

file1 as a.txt:

Anirban
Ball
Cat
Dog
cow

file2 as b.txt:

I am Anirban
I am Ball
I am Cat_cat
I am Dog
I am cow
I am horse 

我想要这样的输出:

I am Anirban
I am Ball
I am Dog
I am cow

我尝试使用grep -f b a,但未提供完全匹配。

2 个答案:

答案 0 :(得分:5)

喜欢这样可以是一种方式:

$ grep -wf a.txt b.txt
I am Anirban
I am Ball
I am Dog
I am cow

在您的解决方案中,您没有使用grep -w,这很方便。另外,请注意您以相反的顺序提供文件。

  • -f用于告诉grep从文件中获取参数。
  • -w匹配整个单词。

答案 1 :(得分:1)

使用awk

awk 'NR==FNR{a[$1];next} $NF in a' a.txt b.txt