Найти строки, общие для нескольких файлов - PullRequest
4 голосов
/ 10 июля 2010

Я пытаюсь определить, какой заголовок объявляет конкретную функцию. Я использовал grep, чтобы найти примеры использования функции; Теперь я хочу найти заголовок, который включен во все файлы. Мне известна утилита comm ; однако он может сравнивать только два отсортированных файла. Существует ли утилита Unix, которая может найти общие линии между произвольным числом несортированных файлов, или я должен написать свой собственный?

1 Ответ

1 голос
/ 10 июля 2010
 cat *.c | sort | uniq -c | grep -e '^ *COUNT #include'

где COUNT - количество файлов, переданных cat. В процессе игры я использовал этот вариант, чтобы увидеть, какие файлы я #include по крайней мере 10 раз:

 cat *.c | sort | uniq -c | grep -e '^ *[0-9][0-9]\+ #include'
...