La página del manual no es muy clara en ese punto, pero la página de información explica:
1.2 Supresión de diferencias en espacios en blanco y tabulación
La opción --ignore-tab-expansion
( -E
) ignora la distinción entre pestañas y espacios en la entrada. Se considera que una pestaña es equivalente al número de espacios para la siguiente tabulación (* note Tabs: :).
La opción --ignore-trailing-space
( -Z
) ignora los espacios en blanco al final de la línea.
La opción --ignore-space-change
( -b
) es más fuerte que -E
y
-Z
combinada. Ignora el espacio en blanco al final de la línea y considera que todas las demás secuencias de uno o más caracteres de espacio en blanco dentro de una línea son equivalentes. Con esta opción, diff
considera que las siguientes dos líneas son equivalentes, donde $
denota el final de la línea:
Here lyeth muche rychnesse in lytell space. -- John Heywood$
Here lyeth muche rychnesse in lytell space. -- John Heywood $
La opción --ignore-all-space
( -w
) es aún más fuerte. Ignora las diferencias incluso si una línea tiene espacio en blanco donde la otra línea no tiene ninguna. Los caracteres de "espacio en blanco" incluyen tabulación, tabulación vertical, avance de formulario, retorno de carro y espacio; algunas configuraciones regionales pueden definir caracteres adicionales para ser espacios en blanco. Con esta opción, diff
considera que las siguientes dos líneas son equivalentes, donde $
denota el final de la línea y ^M
denota un retorno de carro:
Here lyeth muche rychnesse in lytell space.-- John Heywood$
He relyeth much erychnes seinly tells pace. --John Heywood ^M$
Para muchos otros programas, la nueva línea también es un carácter de espacio en blanco, pero diff
es un programa orientado a líneas y un carácter de nueva línea siempre termina una línea. Por lo tanto, la opción -w
o --ignore-all-space
no ignora los cambios relacionados con la nueva línea; ignora solo otros cambios de espacio en blanco.