La page de manuel n'est pas très claire sur ce point, mais la page d'information développe:
1.2 Suppression des différences d'espacement des blancs et des tabulations
L' option --ignore-tab-expansion
( -E
) ignore la distinction entre les tabulations et les espaces en entrée. Un onglet est considéré comme équivalent au nombre d'espaces jusqu'au prochain taquet de tabulation (* remarque Tabulations: :).
L' option --ignore-trailing-space
( -Z
) ignore les espaces blancs à la fin de la ligne.
L' option --ignore-space-change
( -b
) est plus forte que -E
et
-Z
combinée. Il ignore les espaces blancs à la fin de la ligne et considère que toutes les autres séquences d'un ou plusieurs caractères d'espaces blancs dans une ligne sont équivalentes. Avec cette option, diff
considère les deux lignes suivantes comme équivalentes, où $
dénote la fin de la ligne:
Here lyeth muche rychnesse in lytell space. -- John Heywood$
Here lyeth muche rychnesse in lytell space. -- John Heywood $
L' option --ignore-all-space
( -w
) est encore plus forte. Il ignore les différences même si une ligne a un espace blanc alors que l'autre ligne n'en a pas. Les caractères "espace blanc" incluent tabulation, tabulation verticale, saut de page, retour chariot et espace; certains paramètres régionaux peuvent définir des caractères supplémentaires comme des espaces blancs. Avec cette option, diff
considère les deux lignes suivantes comme équivalentes, où $
dénote la fin de la ligne et ^M
dénote un retour chariot:
Here lyeth muche rychnesse in lytell space.-- John Heywood$
He relyeth much erychnes seinly tells pace. --John Heywood ^M$
Pour de nombreux autres programmes, la nouvelle ligne est également un caractère d'espace blanc, mais diff
est un programme orienté ligne et un caractère de nouvelle ligne termine toujours une ligne. Par conséquent, l' option -w
ou --ignore-all-space
n'ignore pas les modifications liées à la nouvelle ligne; il ignore uniquement les autres changements d'espace blanc.