GNU/Linux >> Tutoriales Linux >  >> Linux

Salida de las líneas comunes (similitudes) de dos archivos de texto (el opuesto de diff)?

Diff es una gran herramienta para mostrar los cambios entre dos archivos. Pero, ¿cómo mostrar las similitudes de dos archivos de texto (ignorando las diferencias)?

Es decir. entrada de muestra:

a:
Foo Bar
X
Hello
World
42

b:
Foo Baz
Hello
World
23

Pseudosalida (algo como esto):

@@ 2,3
=Hello World

Ordenar ambos archivos y usar comm no es suficiente, porque en ese caso se pierde la información de la línea.

Respuesta aceptada:

¿Qué tal usar diff, aunque no quieras una diferencia? Prueba esto:

diff --unchanged-group-format='@@ %dn,%df 
  %<' --old-group-format='' --new-group-format='' 
  --changed-group-format='' a.txt b.txt

Esto es lo que obtengo con sus datos de muestra:

$ cat a.txt 
Foo Bar
X
Hello
World
42
$ cat b.txt 
Foo Baz
Hello
World
23
$ diff --unchanged-group-format='@@ %dn,%df
%<' --old-group-format='' --new-group-format='' 
  --changed-group-format='' a.txt b.txt
@@ 2,3
Hello
World

Linux
  1. Cómo unir dos archivos de texto en Linux

  2. Diff informa que dos archivos difieren, ¡aunque son iguales!?

  3. Cómo convertir archivos de texto a mayúsculas o minúsculas

  4. ¿Cómo guardar la salida de este comando awk en un archivo?

  5. Combinar manualmente dos archivos usando diff

¿Buscar texto en la salida del terminal?

Uso del comando Diff para comparar dos archivos en la terminal de Linux

Comparando dos archivos en la terminal de Linux

Cómo obtener la diferencia (solo adiciones) entre dos archivos en Linux

¿Cómo puedo diferenciar dos archivos XML?

¿Cómo diferenciar solo la primera línea de dos archivos?