найти общие линии между несколькими файлами

20

у меня есть 4 файла, которые похожи

       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

Все файлы содержат более 2000 строк и отсортированы по первому столбцу.

Я хочу найти общие строки во всех файлах. я пробовал awk и grep и comm, но не работал

user106326
источник

Ответы:

24

Поскольку файлы уже отсортированы:

comm -12 a b |
  comm -12 - c |
  comm -12 - d
Стефан Шазелас
источник
3
cat a b c d |sort |uniq -c |sed -n -e 's/^ *4 \(.*\)/\1/p'
Петр
источник
На самом деле, сохраните sed, это очень хорошо для поиска дублирующих строк во многих файлах: catto sortto uniq -c. Почему-то я не совсем об этом подумал, хороший ответ!
смасленников
Вы также можете использовать команду uniq для печати только дублированных строк:uniq -cd
мемы