Если выполнение сравнения построчно допустимо, то следующее скажет, какие строки дублируются в файле textи сколько раз каждая из них появляется:
sort text | uniq -c | grep -vE '^\s*1 '
Например,
$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
3 alpha
2 beta
Используя обычные инструменты Unix, это может быть расширено, если предположить, что формат входного теста не слишком сложен, для сравнения по пунктам или по предложениям.
Нахождение повторяющихся абзацев
Предположим, что наш файл textсодержит:
This is a paragraph.
This is another
paragraph
This is
a paragraph.
Last sentence.
Следующая команда определяет, какие абзацы появляются более одного раза:
$ awk -v RS="" '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
2 This is a paragraph.
Он используется awkдля разбиения текста на абзацы (выделенные пустыми строками), преобразует символы новой строки в пробелы, а затем передает выходные данные, по одной строке на абзац, для сортировки и удаления для подсчета дублированных абзацев.
Выше было проверено с GNU awk. Для других awkметод определения пустых строк как границ абзаца (записи) может отличаться.
vimdiffдля вас здесь?