encontre linhas comuns entre vários arquivos

20

eu tenho 4 arquivos que são como

       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

todos os arquivos contêm mais de 2000 linhas e classificados para a primeira coluna.

Eu quero encontrar linhas comuns em todos os arquivos. Eu tentei awk e grep e comm, mas não está funcionando

user106326
fonte

Respostas:

24

Como os arquivos já estão classificados:

comm -12 a b |
  comm -12 - c |
  comm -12 - d
Stéphane Chazelas
fonte
3
cat a b c d |sort |uniq -c |sed -n -e 's/^ *4 \(.*\)/\1/p'
Piotr
fonte
Na verdade, salve o sed, isso é muito bom para encontrar linhas duplicadas em muitos arquivos: catpara sortpara uniq -c. De alguma forma eu não pensei nisso, boa resposta!
smaslennikov
Você também pode usar o comando uniq para imprimir apenas linhas duplicadas:uniq -cd
mems 30/09