znajdź wspólne linie między wieloma plikami


20

Mam 4 pliki, które są podobne

       file A
       >TCONS_00000867
       >TCONS_00001442
       >TCONS_00001447
       >TCONS_00001528
       >TCONS_00001529
       >TCONS_00001668
       >TCONS_00001921

       file b
       >TCONS_00001528
       >TCONS_00001529
       >TCONS_00001668
       >TCONS_00001921
       >TCONS_00001922
       >TCONS_00001924

       file c
       >TCONS_00001529
       >TCONS_00001668
       >TCONS_00001921
       >TCONS_00001922
       >TCONS_00001924
       >TCONS_00001956
       >TCONS_00002048

       file d
       >TCONS_00001922
       >TCONS_00001924
       >TCONS_00001956
       >TCONS_00002048

wszystkie pliki zawierają ponad 2000 wierszy i są posortowane według pierwszej kolumny.

chcę znaleźć wspólne linie we wszystkich plikach. Próbowałem awk i grep i komunikatora, ale nie działa

Odpowiedzi:



3
cat a b c d |sort |uniq -c |sed -n -e 's/^ *4 \(.*\)/\1/p'

Faktycznie, zapisz sed, to jest dość dobry na znalezienie zduplikowane wiersze w wielu plików: catdo sortcelu uniq -c. Jakoś nie do końca o tym pomyślałem, dobra odpowiedź!
smaslennikov

Możesz także użyć polecenia uniq, aby wydrukować tylko zduplikowane linie:uniq -cd
mems
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.