Wie kann ich Zeilenenden beim Vergleichen von Dateien ignorieren?


79

Ich vergleiche zwei Textdateien und erhalte das folgende Ergebnis:

diff file1 file2 | grep 12345678

> 12345678
< 12345678

Wie Sie sehen können, ist in beiden Dateien dieselbe Zeichenfolge vorhanden, und beide Dateien wurden mit sortiert sort.

Die Zeilenenden müssen hier im Weg sein (Windows vs. Unix).

Gibt es eine Möglichkeit diff, Zeilenenden unter Unix zu ignorieren?


4
diff --strip-trailing-cr file1 file2?
Ruslan Osmanov

@ RuslanOsmanov klingt wie eine Antwort, danke. Übrigens ist das das gleiche wie -w?
Wikingersteve

2
Nein, -wignoriert Unterschiede in Leerzeichen und "White space" characters include tab, vertical tab, form feed, carriage return, and space. Zum Beispiel diff a bwird Unterschied für "Linie" und <tab>line, aber diff -w a bnicht
Ruslan Osmanov

@ RuslanOsmanov Das ist eine gute Erklärung. Würde es Ihnen etwas ausmachen, sie auf eine Antwort zu verschieben, damit ich sie akzeptieren kann?
Wikingersteve

Beantwortet das deine Frage? Line-End-Agnostiker diff? . Fast 9 Jahre zuvor.
Peter Mortensen

Antworten:


128

Verwenden Sie die --strip-trailing-crOption:

diff --strip-trailing-cr file1 file2

Die Option bewirkt diff, dass das nachfolgende Wagenrücklaufzeichen entfernt wird, bevor die Dateien verglichen werden.


8
Vielen Dank! Ich habe versucht, diff -wähnliche Ergebnisse zu erzielen, aber dies ist die richtigste Antwort.
Wikingersteve
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.