GNU/Linux >> Linux Esercitazione >  >> Linux

Problema di scripting Bash:confrontare due elenchi e crearne un terzo?

Ho l'inizio di un copione che sto mettendo insieme per controllare gli host di Xen... questa domanda è davvero duplice. Per prima cosa ho lo snippet di codice qui sotto;

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

Quindi questo mi dà due elenchi, voglio rimuovere tutto ciò che appare in FILE002.rx dall'apparire in FILE001.rx e inviarlo a FILE003.rx.

Idealmente non avrei alcun file utilizzato in questo, ma stavo lottando per farlo funzionare cercando di catturarli in variabili.

Quindi, se possibile, sarebbe meglio eseguire lo script, confrontare l'output dei due comandi e mostrare il resto solo una volta che l'output del comando 2 è stato rimosso dal comando 1.

Uscita del comando 1;

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

Uscita del comando 2 (rifilato);

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

Risposta accettata:

Guarda la comm comando. Prendi i seguenti due file

f1.txt

item1
item2
item3
item4
item5
item6

f2.txt

item1
item2
item22
item3
item4

Uscita

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

voce della pagina man per Comm


Linux
  1. Script Bash(I)

  2. Confronta due colonne di file diversi e stampa se corrisponde?

  3. Come confrontare le stringhe negli script di Bash Shell

  4. Come creare e chiamare funzioni in Bash

  5. Come confrontare due stringhe nel formato della versione separata da punti in Bash?

Linux Bash Scripting Part5 – Segnali e lavori

Shell Scripting Part4 – Input, Output e Reindirizzamento

Bash Scripting Part2 – Cicli For e While con esempi

Confronta due file in Linux – Usando diff, vimdiff e colordiff

Bash Scripting:come generare e formattare il testo su Linux Shell

Creazione di classi e oggetti utilizzando lo scripting bash