打印两个文件中的名称

时间:2013-02-06 04:18:26

标签: sed awk

我有两个文件。我想打印两个文件中的名称。

file1   

  1dfg   
  4rte
  aabd 
  hjgf

file2

  4rte
  2fgh
  1dfg

期望的输出

1dfg
4rte

4 个答案:

答案 0 :(得分:3)

一种方式:

$ comm  -12 <(sort file1) <(sort file2)
1dfg
4rte

答案 1 :(得分:0)

cat file1 | grep -Fxf file2

如果你想要它打印而不用grep搜索突出显示

cat file1 | grep -Fxf file2 | awk '{print $1}'

答案 2 :(得分:0)

grep可以做到这一点:

grep -f file2 file1

结果:

1dfg   
4rte

但是,awk可能更合适,具体取决于空白的重要性:

awk 'FNR==NR { a[$0]; next } $0 in a' file2 file1

或:

awk 'FNR==NR { a[$1]; next } $1 in a' file2 file1

答案 3 :(得分:0)

使用awk的其他方式

awk 'FNR==NR{a[$1]+=1;next} a[$1]' file1.txt file2.txt