GNU/Linux >> Tutoriels Linux >  >> Linux

Problème de script bash - Comparez deux listes et créez-en une troisième ?

J'ai les débuts d'un script que je suis en train de mettre en place pour vérifier les hôtes Xen… cette question est vraiment double. Tout d'abord, j'ai l'extrait de code ci-dessous ;

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

Donc, cela me donne deux listes, je veux supprimer tout ce qui apparaît dans FILE002.rx d'apparaître dans FILE001.rx et le sortir dans FILE003.rx.

Idéalement, je n'aurais aucun fichier utilisé dans ce domaine, mais j'avais du mal à le faire fonctionner en essayant de les capturer dans des variables.

Donc, si possible, il serait préférable d'exécuter le script, de comparer la sortie des deux commandes et de n'afficher le reste qu'une fois que la sortie de la commande 2 a été retirée de la commande 1.

Sortie de la commande 1 ;

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

Sortie de la commande 2 (coupée);

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

Réponse acceptée :

Regardez le comm commande. Prenez les deux fichiers suivants

f1.txt

item1
item2
item3
item4
item5
item6

f2.txt

item1
item2
item22
item3
item4

Sortie

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

entrée de la page de manuel pour Comm


Linux
  1. Script bash (I)

  2. Comparez deux colonnes de fichiers différents et imprimez si cela correspond ?

  3. Comment comparer deux dossiers et copier la différence dans un troisième dossier ?

  4. Comment comparer des chaînes dans les scripts shell bash

  5. Comment comparer deux chaînes au format de version séparées par des points dans Bash ?

Linux Bash Scripting Part5 - Signaux et tâches

Shell Scripting Part4 - Entrée, sortie et redirection

Bash Scripting Part2 - Boucles For et While avec exemples

Comparez deux fichiers sous Linux - Utilisation de diff, vimdiff et colordiff

Bash Scripting :comment générer et formater du texte sur le shell Linux

Création de classes et d'objets à l'aide de scripts bash