Vergleicht zwei sortierte Listen in linux, die Auflistung der einmaligen und in der zweiten Datei
Ich habe 2 Dateien mit einer Liste von zahlen (Telefonnummern).
Ich bin auf der Suche nach einer Methode, die Auflistung der zahlen in der zweiten Datei nicht vorhanden ist in der ersten Datei.
Habe ich versucht, die verschiedenen Methoden, mit:
comm (getting some weird sorting errors)
fgrep -v -x -f second-file.txt first-file.txt (unsure of the result, there should be more)
- Haben Sie überprüft diese Antwort: stackoverflow.com/a/1617326/15165 ? BTW: bevor etwas zu tun, stellen Sie sicher, Sie haben alle die trailing-Linien und zusätzliche Leerzeichen entfernt. Dies könnte der Grund, Sie haben nicht alle von Ihnen gefunden...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht im Grunde für alle Linien in
second-file.txt
die nicht übereinstimmen jede Zeile infirst-file.txt
. Möglicherweise langsam, wenn die Dateien sehr groß sind.Auch, wenn Sie die Dateien Sortieren (Benutzen Sie
sort -n
wenn Sie numerisch sind), danncomm
sollte auch gearbeitet haben. Welche Fehler gibt es? Versuchen Sie dies:second-file.txt
ist nicht leer.Müssen Sie
comm
:wird die Arbeit machen.
ps. Reihenfolge der ersten und zweiten Datei in der Befehlszeile Angelegenheiten.
außerdem müssen Sie möglicherweise Dateien Sortieren vor:
falls die Dateien sind numerische hinzufügen
-n
optionsort
.comm
+sort
.Sollte diese Arbeit
Scheint es eine Art -n (numeric) funktionieren nicht, comm, die verwendet Sortierung (alphanumerisch) intern
f1.txt
f2.txt
21 sollte in der Dritten Spalte