Si hacer la comparación línea por línea es aceptable, lo siguiente le dirá qué líneas están duplicadas en el archivo text
y cuántas veces aparece cada una:
sort text | uniq -c | grep -vE '^\s*1 '
Como ejemplo,
$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
3 alpha
2 beta
Usando las herramientas habituales de Unix, esto podría extenderse, suponiendo que el formato de prueba de entrada no sea demasiado complejo, para comparaciones de párrafo por párrafo o de oración por oración.
Encontrar párrafos repetidos
Supongamos que nuestro archivo text
contiene:
This is a paragraph.
This is another
paragraph
This is
a paragraph.
Last sentence.
El siguiente comando identifica muestra qué párrafos aparecen más de una vez:
$ awk -v RS="" '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
2 This is a paragraph.
Esto se usa awk
para dividir el texto en párrafos (delineados por líneas en blanco), convierte las nuevas líneas en espacios y luego pasa la salida, una línea por párrafo, para ordenar y unificar para contar párrafos duplicados.
Lo anterior fue probado con GNU awk
. Para otros awk
, el método para definir líneas en blanco como límites de párrafo (registro) puede diferir.
vimdiff
no hace por ti aquí?