temukan garis-garis yang sama di antara banyak file

20

Saya punya 4 file yang seperti

       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

semua file berisi lebih dari 2000 baris dan diurutkan untuk kolom pertama.

saya ingin menemukan garis yang umum di semua file. Saya mencoba awk dan grep dan comm tetapi tidak berhasil

pengguna106326
sumber

Jawaban:

24

Karena file sudah diurutkan:

comm -12 a b |
  comm -12 - c |
  comm -12 - d
Stéphane Chazelas
sumber
3
cat a b c d |sort |uniq -c |sed -n -e 's/^ *4 \(.*\)/\1/p'
Piotr
sumber
Sebenarnya, menyimpan yang sed, ini cukup baik untuk menemukan duplikat baris di banyak file: catuntuk sortke uniq -c. Entah bagaimana saya tidak memikirkan ini, jawaban yang bagus!
smaslennikov
Anda juga dapat menggunakan perintah uniq untuk hanya mencetak baris duplikat:uniq -cd
mems