Se è accettabile eseguire il confronto riga per riga, quindi quanto segue indicherà quali righe sono duplicate nel file text
e quante volte ciascuna appare:
sort text | uniq -c | grep -vE '^\s*1 '
Come esempio,
$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
3 alpha
2 beta
Usando i soliti strumenti unix, questo potrebbe essere esteso, supponendo che il formato del test di input non sia troppo complesso, per i confronti paragrafo per paragrafo o frase per frase.
Trovare paragrafi ripetuti
Supponiamo che il nostro file text
contenga:
This is a paragraph.
This is another
paragraph
This is
a paragraph.
Last sentence.
Il seguente comando identifica mostra quali paragrafi appaiono più di una volta:
$ awk -v RS="" '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
2 This is a paragraph.
Questo utilizza awk
per suddividere il testo in paragrafi (delineati da righe vuote), converte le nuove righe in spazi, quindi passa l'output, una riga per paragrafo, per ordinare e unire per il conteggio dei paragrafi duplicati.
Quanto sopra è stato testato con GNU awk
. Per altri awk
, il metodo per definire le righe vuote come limiti di paragrafo (record) può differire.
vimdiff
non fa per te qui?