GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash-Scripting-Problem – Vergleichen Sie zwei Listen und erstellen Sie eine dritte?

Ich habe die Anfänge eines Skripts, das ich zusammenstelle, um Xen-Hosts zu überprüfen … diese Frage ist wirklich zweifach. Zuerst habe ich das folgende Code-Snippet;

TMPFILE001=/tmp/FILE001.rx
TMPFILE002=/tmp/FILE002.rx
TMPFILE003=/tmp/FILE003.rx

xe vm-list params=uuid,is-control-domain | grep -B1 true | grep uuid | awk {'print $5'} > $TMPFILE001
xe vm-list params=uuid --minimal | tr ',' '\n' > $TMPFILE002

Das gibt mir also zwei Listen, ich möchte alles, was in FILE002.rx erscheint, aus dem Erscheinen in FILE001.rx entfernen und das in FILE003.rx ausgeben.

Idealerweise hätte ich überhaupt keine Dateien darin verwendet, aber ich hatte Mühe, es zum Laufen zu bringen, indem ich versuchte, sie in Variablen zu erfassen.

Wenn möglich, wäre es also besser, das Skript auszuführen, die Ausgabe der beiden Befehle zu vergleichen und den Rest erst anzuzeigen, wenn die Ausgabe von Befehl 2 von Befehl 1 weggenommen wurde.

Ausgabe von Befehl 1;

cat /tmp/FILE001.rx 
468190e5-c78b-4337-8094-20638353b470
5926bbf3-c48c-4c2a-8113-d7e58520cfe7
3f98ee14-5e60-4e9b-852a-f924ffe80791

Ausgabe von Befehl 2 (getrimmt);

cat /tmp/FILE002.rx | head -5
37ae6b9e-8a00-ab10-7e17-3d70ab275b9b
d8208537-0d69-1332-9301-4699d194430f
1cf06668-5450-4d44-a7ba-c2c7b6bcd6b2
7d11c6e3-48ef-0e5e-c6ed-e8f2548533fd
7d3d0ba3-a6d6-d2a7-99f0-06fa74e625fa

Akzeptierte Antwort:

Sehen Sie sich die comm an Befehl. Nehmen Sie die folgenden zwei Dateien

f1.txt

item1
item2
item3
item4
item5
item6

f2.txt

item1
item2
item22
item3
item4

Ausgabe

$ comm -23 f1.txt f2.txt
item5
item6

Manpage-Eintrag für Comm


Linux
  1. Bash-Scripting(I)

  2. Zwei Spalten verschiedener Dateien vergleichen und bei Übereinstimmung drucken?

  3. Wie vergleiche ich zwei Ordner und kopiere den Unterschied in einen dritten Ordner?

  4. So vergleichen Sie Zeichenfolgen in Bash Shell-Skripten

  5. Verhalten von Arrays in Bash-Scripting und ZSH-Shell (Startindex 0 oder 1?)

Linux Bash Scripting Part5 – Signale und Jobs

Shell-Scripting Teil 4 – Eingabe, Ausgabe und Umleitung

Bash-Scripting Teil 2 – For- und While-Schleifen mit Beispielen

Vergleichen Sie zwei Dateien unter Linux – Verwenden Sie diff, vimdiff und colordiff

Bash-Skripting:So geben Sie Text in der Linux-Shell aus und formatieren ihn

Erstellen von Klassen und Objekten mit Bash-Scripting