GNU/Linux >> Tutoriales Linux >  >> Linux

Problema de secuencias de comandos de Bash:¿comparar dos listas y crear una tercera?

Tengo los inicios de un script que estoy armando para verificar los hosts Xen... esta pregunta es doble realmente. En primer lugar, tengo el siguiente fragmento de código;

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

Así que esto me da dos listas, quiero eliminar todo lo que aparece en FILE002.rx para que no aparezca en FILE001.rx y enviarlo a FILE003.rx.

Idealmente, no usaría ningún archivo en esto, pero estaba luchando para que funcionara tratando de capturarlos en variables.

Entonces, si es posible, sería mejor ejecutar el script, comparar la salida de los dos comandos y solo mostrar el resto una vez que la salida del comando 2 se haya quitado del comando 1.

Salida del comando 1;

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

Salida del comando 2 (recortado);

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

Respuesta aceptada:

Mire el comm dominio. Tome los siguientes dos archivos

f1.txt

item1
item2
item3
item4
item5
item6

f2.txt

item1
item2
item22
item3
item4

Salida

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

entrada de la página man para Comm


Linux
  1. Bash secuencias de comandos (I)

  2. ¿Comparar dos columnas de diferentes archivos e imprimir si coincide?

  3. ¿Cómo comparar dos carpetas y copiar la diferencia en una tercera carpeta?

  4. Cómo comparar cadenas en Bash Shell Scripting

  5. Cómo crear y llamar funciones en Bash

Linux Bash Scripting Part5 – Señales y trabajos

Shell Scripting Parte 4:entrada, salida y redirección

Bash Scripting Part2 – Bucles for y while con ejemplos

Compare dos archivos en Linux:use diff, vimdiff y colordiff

Bash Scripting:cómo generar y formatear texto en Linux Shell

Creando clases y objetos usando bash scripting