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