¿Cómo puedo ignorar los finales de línea al comparar archivos?


83

Estoy comparando dos archivos de texto y obtengo el siguiente resultado:

diff file1 file2 | grep 12345678

> 12345678
< 12345678

Como puede ver, la misma cadena existe en ambos archivos y ambos archivos se ordenaron con sort.

Los finales de línea deben interponerse aquí (Windows vs. Unix).

¿Hay alguna forma de diffignorar los finales de línea en Unix?


4
diff --strip-trailing-cr file1 file2?
Ruslan Osmanov

@RuslanOsmanov suena como una respuesta, gracias. Por cierto, ¿es lo mismo que -w?
vikingsteve

3
No, -wignora las diferencias en los espacios en blanco y "White space" characters include tab, vertical tab, form feed, carriage return, and space. Por ejemplo, diff a bmostrará la diferencia para "línea" y <tab>line, pero diff -w a bno lo hará
Ruslan Osmanov

@RuslanOsmanov Esa es una buena explicación, ¿le importaría cambiarla a una respuesta para que pueda aceptarla?
vikingsteve

¿Responde esto a tu pregunta? ¿Diferencia agnóstica de final de línea? . Casi 9 años antes.
Peter Mortensen

Respuestas:


135

Utilice la --strip-trailing-cropción:

diff --strip-trailing-cr file1 file2

La opción hace diffque se elimine el carácter de retorno del carro final antes de comparar los archivos.


8
¡Gracias! Intenté usar diff -wque dio resultados similares, pero esta es la respuesta más correcta.
vikingsteve
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.