GNU/Linux >> Tutoriales Linux >  >> Linux

Diferencia en espacios en blanco entre dos archivos en Linux

En FreeBSD o en la mayoría de los sistemas Linux, puede canalizar la salida de diff a través de cat -v -e -t para mostrar las diferencias de espacios en blanco.

diff file1 file2 | cat -vet

Las pestañas se mostrarán como ^I , un $ se mostrará al final de cada línea para que pueda ver los espacios en blanco al final, y los caracteres que no se pueden imprimir se mostrarán como ^X o M-X .

Si tiene GNU coreutils (disponible en la mayoría de las distribuciones de Linux que no son de Busybox), esto se puede simplificar a

diff file1 file2 | cat -A

En sistemas de caja ocupada, use catv -vet .


Para vim usuarios, hay una utilidad útil para mostrar las diferencias exactas entre los archivos:

vimdiff file1 file2

Esto colocará cada archivo en ventanas, uno al lado del otro, y las diferencias se resaltarán en color.

Algunos comandos útiles en vimdiff

Mientras que en vimdiff , algunos comandos útiles son:

  • ]c :saltar al siguiente cambio

  • [c :saltar al cambio anterior

  • ctrl-W ctrl-W :cambiar a otra ventana

  • zo :pliegues abiertos

  • zc :cerrar pliegues

Ejemplo

Aquí hay un ejemplo de vimdiff en un xterm comparando dos versiones de un cups archivo de configuración:

Puede ver que se han colapsado secciones largas de líneas idénticas. Se pueden abrir de nuevo con zo .

El esquema de color variará según la configuración de las opciones. En el ejemplo anterior, cuando una línea aparece en un archivo pero no en el otro, esa línea tiene un fondo azul oscuro. En el otro archivo, las líneas que faltan se indican mediante líneas discontinuas. Cuando una línea aparece en ambos archivos pero tiene algunas diferencias, las partes sin cambios de las líneas tienen un fondo rosa y las partes cambiadas tienen un fondo rojo.


¿Se editó uno de los archivos en una máquina con Windows?

La terminación de línea estándar en Windows es CRLF, mientras que en Linux es simplemente LF (y en Mac solía ser CR, pero sospecho que ha cambiado desde OS X).

Prueba wc -l en los archivos y vea cuántas líneas, luego vea si la diferencia de tamaño es la misma que la cantidad de líneas (es posible que la última línea no termine en un archivo).


Linux
  1. Aprenda la diferencia entre los comandos "su" y "su -" en Linux

  2. Linux:¿cómo eliminar archivos creados entre dos veces?

  3. ¿Extraer texto entre dos líneas específicas?

  4. Producto cartesiano de dos archivos (como conjuntos de líneas) en GNU/Linux

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

Comparte archivos entre escritorios Linux con Warpinator

Cómo comentar líneas en archivos de configuración en Linux

Cómo comparar dos archivos en la terminal de Linux

Cómo Rsync archivos entre dos servidores Linux automáticamente

diferencia entre netstat y ss en linux?

Comparando dos archivos en la terminal de Linux