grep file1到file2而不更改顺序

时间:2019-10-11 18:33:32

标签: awk grep

cat file1
2   
5  
1  
6 

cat file2 
5 A  
2 B  
6 C  
1 D  

所需的输出文件是:

2 B  
5 A  
1 D  
6 C  

我尝试过:

grep -Ff file1 file2 > output

但是,输出显示如下:

1 D  
2 B  
5 A  
6 C  

1 个答案:

答案 0 :(得分:3)

awk来营救!

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

2 B
5 A
1 D
6 C

没有awk有点棘手

$ join -12 <(nl file1 | sort -k2) <(sort file2) | sort -k2n | cut -d' ' -f2 --complement