Tengo dos archivos que me parecen idénticos (incluidos los espacios en blanco al final y las nuevas líneas) pero diff todavía dice que difieren. Incluso cuando hago una diff -ycomparación lado a lado, las líneas se ven exactamente iguales. La salida de diff son los 2 archivos completos.
¿Alguna idea de lo que lo está causando?

sed -n l filename. Si no ayuda, agregue un ejemplo de datos ydiffsalida aquí.filecomando le indirecta sobre el contenido del archivo, incluyendo cosas comoASCII text, with CRLF line terminatorsvsASCII text.Respuestas:
Extraño ... ¿puedes intentarlo
cmp? Es posible que desee utilizar la-bopción ' ' también.Página de manual de cmp : compara dos archivos byte a byte.
Esta es una de las cosas buenas de Unix / Linux ... tantas herramientas :)
fuente
-bes paraignore changes in the amount of white space.¿Pueden las diferencias ser causadas por las terminaciones de línea de DOS vs. UNIX, o algo similar?
¿Y si ustedes
hexdump? Esto podría mostrar diferencias más obviamente, por ejemplo:fuente
Tratar:
La
-topción harácatque se muestren claramente los caracteres especiales, por ejemplo.^Mpara CR,^Ipara tab.Desde la página del manual (OS X):
fuente
Mi primera suposición, que se confirma, es que los archivos usan diferentes finales de línea. Podría haber alguna otra diferencia en el espacio en blanco, como la presencia de espacios en blanco al final (pero normalmente no se obtendría en muchas líneas) o una sangría diferente (tabulaciones frente a espacios). Utilice un comando que imprima espacios en blanco y caracteres de control en una forma visible, como
Puede confirmar que las diferencias solo tienen que ver con las terminaciones de línea normalizándolas primero. Puedes tener una
dos2unixutilidad; de lo contrario, elimine explícitamente el carácter CR (^ M, \ r, \ 015) adicional:o, si
file1es el que tiene terminaciones de DOSfuente