Сторінка man не дуже зрозуміла з цього приводу, але на інформаційній сторінці уточнено:
1.2 Придушення відмінностей між порожніми та вкладками
Параметр --ignore-tab-expansion
( -E
) ігнорує відмінність між вкладками та пробілами на вході. Вкладка вважається еквівалентною кількості пробілів до наступної зупинки вкладки (* Примітка 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
є лінійно орієнтованою програмою, а символ нового рядка завжди закінчується рядком. Отже, -w
або --ignore-all-space
варіант не ігнорує зміни, пов'язані з новим рядком; він ігнорує лише інші зміни білого простору.