a.txt:
1;john;125;3
1;tom;56;2
2;jack;10;5
b.txt:
1;john;125;3
1;tom;58;2
2;jack;10;5
Verwenden Sie komm:
comm -13 a.txt b.txt
1;tom;58;2
Die Kommandozeilenoptionen bis comm
sind ziemlich geradlinig:
-1 Spalte 1 unterdrücken (Zeilen, die nur für DATEI1 gelten)
-2 Spalte 2 unterdrücken (Zeilen, die nur für DATEI2 gelten)
-3 Spalte 3 unterdrücken (Zeilen, die in beiden Dateien vorkommen)
Hier ist eine einfache Lösung, die meiner Meinung nach besser ist als diff
:
sort file1 file2 | uniq -u
sort file1 file2
verkettet die beiden Dateien und sortiert sieuniq -u
druckt die eindeutigen Zeilen (die sich nicht wiederholen). Es erfordert eine Vorsortierung der Eingabe.
Mithilfe von Gruppenformatbezeichnern können Sie das Drucken unveränderter Zeilen unterdrücken und nur geänderte Zeilen für geänderte drucken
diff --changed-group-format="%>" --unchanged-group-format="" file1 file2
Angenommen, Sie möchten nur die Zeilen beibehalten, die nur für Datei 2 gelten, können Sie Folgendes tun:
comm -13 file1 file2
Beachten Sie, dass die comm
Der Befehl erwartet, dass die beiden Dateien in sortierter Reihenfolge vorliegen.