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?

vikingsteve
quelle
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.

Ruslan Osmanov
quelle
8
Vielen Dank! Ich habe versucht, diff -wähnliche Ergebnisse zu erzielen, aber dies ist die richtigste Antwort.
Wikingersteve