Welcher Unix-Befehl/Dienstprogramm kann ich verwenden, um meine endgültige Liste von Namen basierend auf meinen 2 Listen unten zu erstellen? Dies wäre wie eine SET
Operation. Der Hauptvergleich muss jedoch gegen NameList1
erfolgen. Wenn NameList2
einen zusätzlichen Namen hat, darf er nicht in die Hauptliste aufgenommen werden.Unix-Befehl, um Listenvergleiche auszuführen, die einer Set-Operation entsprechen
Hinweis: Ich kann nicht sortiert haben (alphabetisch usw.). Ich muss die Spaltenposition (natürliche Reihenfolge) beibehalten, wie ich bereits in meiner Liste oben, unten angegeben habe. Danke für Ihre Hilfe.
NameList1:
Joe
John
Mary
Mike
Allan
David
Andrew
Matt
NameList2:
Joe
John
Mary
George
Jeff
Allan
David
Andrew
Frank
Wenn ich ein diff
mit einem Side-by-Side-Vergleich können Sie den Vergleich sehen. Wie so:
-bash-4.1$ diff --side-by-side NameList1.txt NameList2.txt
Joe Joe
John John
Mary Mary
Mike | George
> Jeff
Allan Allan
David David
Andrew Andrew
Matt | Frank
Das Ergebnis, erwartet für meine endgültige Liste wäre:
Joe
John
Mary
Mike
Allan
David
Andrew
Matt
Wo George, Jeff, Frank
von NameList1 entfernt wird. Wie kann ich diese endgültige Liste erstellen? Gibt es einen besseren Werkzeugbefehl? Benutze ich diff
richtig?
ist das Ergebnis identisch mit Ihrer Liste1? – haifzhan
Ihr Problem ist nicht gut definiert. –
Wie in meiner 'Master'-Liste aufgeführt ist, was ich produzieren muss. In anderen Worten, was auch immer in NameList2 ist, das nicht in NameList1 ist, entfernen Sie es aus NameList1. – noober