grep file1 to file2 без изменения порядка - PullRequest
1 голос
/ 11 октября 2019
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 Ответ

3 голосов
/ 11 октября 2019

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...