A página de manual não é muito clara nesse ponto, mas a página de informações é elaborada:
1.2 Suprimindo diferenças no espaço em branco e tabulação
A opção --ignore-tab-expansion
( -E
) ignora a distinção entre guias e espaços na entrada. Uma tabulação é considerada equivalente ao número de espaços para a próxima parada de tabulação (* note Tabs: :).
A opção --ignore-trailing-space
( -Z
) ignora o espaço em branco no final da linha.
A opção --ignore-space-change
( -b
) é mais forte que -E
e
-Z
combinada. Ele ignora o espaço em branco no final da linha e considera todas as outras seqüências de um ou mais caracteres de espaço em branco em uma linha como equivalentes. Com esta opção, diff
considera as duas linhas a seguir equivalentes, onde $
denota o final da linha:
Here lyeth muche rychnesse in lytell space. -- John Heywood$
Here lyeth muche rychnesse in lytell space. -- John Heywood $
A opção --ignore-all-space
( -w
) é mais forte ainda. Ele ignora as diferenças, mesmo que uma linha tenha espaço em branco onde a outra linha não tenha nenhum. Os caracteres "espaço em branco" incluem aba, aba vertical, alimentação de formulário, retorno de carro e espaço; alguns códigos de idioma podem definir caracteres adicionais como espaço em branco. Com esta opção, diff
considera as duas linhas seguintes equivalentes, onde $
denota o final da linha e ^M
indica um retorno de carro:
Here lyeth muche rychnesse in lytell space.-- John Heywood$
He relyeth much erychnes seinly tells pace. --John Heywood ^M$
Para muitos outros programas, a nova linha também é um caractere de espaço em branco, mas diff
é um programa orientado a linhas e um caractere de nova linha sempre termina uma linha. Portanto, a opção -w
ou --ignore-all-space
não ignora as alterações relacionadas à nova linha; ignora apenas outras alterações de espaço em branco.