2016-05-02 3 views
0

Мне нужно сравнить два файла f1.txt и f2.txt и получить общие элементы, для этого случая я ищу, чтобы соответствовать первому элементу каждой строки, чтобы распечатать всю строку, связанную с общими элементами?Мне нужно сравнить два файла f1.txt и f2.txt и получить общие элементы?

f1.txt

3 
4 
5 

f2.txt

1AAAAAA 
2BBBBBB 
3CCCCCC 
4DDSDDDD 
5EEEEEE 
6FFFFFFF 
7GGGGG 
5EHHH 

Ожидаемый результат:

3CCCCCC 
4DCCCCC 
5EEEEEEE 

ответ

0
awk 'FNR==NR{ 
    a[$1]; 
    next 
} 
{ 
    split($1,b,"") ; 
    if(b[1] in a && !c[b[1]]) { 
     print $1; 
     c[b[1]]=1 
    } 
}' f1.txt f2.txt 
0
$ awk -v FS= 'NR==FNR{a[$1];next} $1 in a{print; delete a[$1]}' f1.txt f2.txt 
3CCCCCC 
4DDSDDDD 
5EEEEEE 

выше будет работать в GNU awk и любой другой awk, который разбивает записи на поля отдельных символов, когда FS равно null. С другими awks используйте substr ($ 0,1,1).

Смежные вопросы