Як я можу ігнорувати закінчення рядків при порівнянні файлів?


83

Я порівнюю два текстові файли і отримую такий результат:

diff file1 file2 | grep 12345678

> 12345678
< 12345678

Як бачите, однаковий рядок існує в обох файлах, і обидва файли були відсортовані sort.

Закінчення рядків, мабуть, заважають тут (Windows проти Unix).

Чи є спосіб diffігнорувати закінчення рядків на Unix?


4
diff --strip-trailing-cr file1 file2?
Руслан Османов

@RuslanOsmanov звучить як відповідь, дякую. До речі, це те саме, що -w?
vikingsteve

3
Ні, -wігнорує відмінності в пробілах і "White space" characters include tab, vertical tab, form feed, carriage return, and space. Наприклад, diff a bпокаже різницю для `line` та <tab>line, але diff -w a bне буде
Руслан Османов

@RuslanOsmanov Це прекрасне пояснення. Не могли б ви перекласти його на відповідь, щоб я міг його прийняти.
vikingsteve

Це відповідає на ваше запитання? Кінцева агностична різниця? . Майже за 9 років до цього.
Пітер Мортенсен

Відповіді:


136

Використовуйте --strip-trailing-crопцію:

diff --strip-trailing-cr file1 file2

Ця опція призводить diffдо видалення символу повернення кінцевої каретки перед порівнянням файлів.


8
Дякую! Я спробував використати, diff -wщо дало схожі результати, але це найбільш правильна відповідь.
vikingsteve
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.