GNU/Linux >> Tutoriales Linux >  >> Linux

Comparando dos archivos en la terminal de Linux

si tienes vim instalado, prueba esto:

vimdiff file1 file2

o

vim -d file1 file2

lo encontrarás fantástico.


Prueba sdiff (man sdiff )

sdiff -s file1 file2

Si prefiere el estilo de salida diferencial de git diff , puedes usarlo con el --no-index bandera para comparar archivos que no están en un repositorio de git:

git diff --no-index a.txt b.txt

Usando un par de archivos con alrededor de 200k cadenas de nombre de archivo en cada uno, hice una evaluación comparativa (con el time integrado comando) este enfoque frente a algunas de las otras respuestas aquí:

git diff --no-index a.txt b.txt
# ~1.2s

comm -23 <(sort a.txt) <(sort b.txt)
# ~0.2s

diff a.txt b.txt
# ~2.6s

sdiff a.txt b.txt
# ~2.7s

vimdiff a.txt b.txt
# ~3.2s

comm parece ser el más rápido con diferencia, mientras que git diff --no-index parece ser el enfoque más rápido para la salida de estilo diff.

Actualización 2018-03-25 De hecho, puede omitir el --no-index marca a menos que esté dentro de un repositorio de git y desee comparar archivos sin seguimiento dentro de ese repositorio. De las páginas man:

Este formulario es para comparar las dos rutas dadas en el sistema de archivos. Puede omitir la opción --no-index cuando ejecuta el comando en un árbol de trabajo controlado por Git y al menos uno de los puntos de ruta fuera del árbol de trabajo, o cuando ejecuta el comando fuera de un árbol de trabajo controlado por Git.


Ordenarlos y usar comm :

comm -23 <(sort a.txt) <(sort b.txt)

comm compara los archivos de entrada (ordenados) y, de forma predeterminada, genera tres columnas:líneas que son exclusivas de a, líneas que son exclusivas de b y líneas que están presentes en ambos. Especificando -1 , -2 y/o -3 puede suprimir la salida correspondiente. Por lo tanto comm -23 a b enumera solo las entradas que son exclusivas de a. Yo uso el <(...) sintaxis para ordenar los archivos sobre la marcha, si ya están ordenados, no necesita esto.


Linux
  1. Copiar archivos en la terminal de Linux

  2. Cambiar el nombre de un archivo en la terminal de Linux

  3. Mostrar dos archivos uno al lado del otro

  4. Linux:compare la estructura de directorios sin comparar archivos

  5. Subir archivos a la cuenta S3 desde la línea de comandos de Linux

Cómo encontrar archivos usando la línea de comandos en la terminal de Linux

8 métodos para cambiar el nombre de varios archivos a la vez en Linux

Cómo mostrar dos archivos uno al lado del otro en Linux

Cómo comparar dos archivos en la terminal de Linux

Cómo copiar archivos y directorios en la terminal de Linux

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