Страница man не очень ясна по этому вопросу, но информационная страница содержит:
1.2 Подавление различий между пробелами и интервалами табуляции
Опция --ignore-tab-expansion( -E) игнорирует различие между вкладками и пробелами при вводе. Вкладка считается равной количеству пробелов до следующей остановки табуляции (* note Tabs: :).
Опция --ignore-trailing-space( -Z) игнорирует пробел в конце строки.
Опция --ignore-space-change( -b) сильнее, чем -Eи в
-Zсочетании. Он игнорирует пробелы в конце строки и считает все другие последовательности одного или нескольких символов пробела в строке эквивалентными. С этой опцией diffсчитает следующие две строки эквивалентными, где $обозначает конец строки:
Here lyeth muche rychnesse in lytell space. -- John Heywood$
Here lyeth muche rychnesse in lytell space. -- John Heywood $
Опция --ignore-all-space( -w) еще сильнее. Он игнорирует различия, даже если в одной строке есть пробел, а в другой нет ни одной. Символы «пробел» включают табуляцию, вертикальную табуляцию, подачу формы, возврат каретки и пробел; некоторые локали могут определять дополнительные символы как пробелы. С этой опцией diff
считает следующие две строки эквивалентными, где $обозначает конец строки и ^Mобозначает возврат каретки:
Here lyeth muche rychnesse in lytell space.-- John Heywood$
He relyeth much erychnes seinly tells pace. --John Heywood ^M$
Для многих других программ символ новой строки также является пробелом, но diffэто программа, ориентированная на строки, и символ новой строки всегда заканчивается строкой. Следовательно, опция -wor --ignore-all-spaceне игнорирует изменения, связанные с новой строкой; он игнорирует только другие изменения пробелов.