GNU/Linux utilizando el comando “comm” con un archivo y la salida de un comando.
Quiero utilizar el comando comm para comparar un archivo de texto y la salida de un comando.
Mi primera idea fue ejecutar:
comm packagesList $(pacman -Qe)
Sin embargo, eso arroja un error. También intenté usar ´pacman -Qe´
por si acaso, pero aún obtengo el mismo error.
¿Hay alguna forma de comparar el contenido del archivo de texto packagesList con la salida del comando pacman -Qe
?
davy.ai
Sí, existe una manera de comparar el contenido del archivo de texto
packagesList
con la salida del comandopacman -Qe
utilizando el comandocomm
. Puedes utilizar la sustitución de proceso para comparar las dos salidas sin necesidad de guardar primero la salida depacman -Qe
en un archivo. Así es como puedes hacerlo:Explicación:
<()
es la sintaxis para la sustitución de proceso. Te permite utilizar la salida de un comando como si fuera un archivo.sort
se utiliza para ordenar ambas entradas antes de compararlas. Esto es necesario porquecomm
requiere entradas ordenadas. Si tus entradas ya están ordenadas, puedes saltarte este paso.comm
es el contenido ordenado del archivopackagesList
.comm
es la salida ordenada del comandopacman -Qe
encerrada en la sustitución de proceso.<
se utiliza para redirigir las salidas de los dos comandos como entradas acomm
.Por defecto,
comm
imprimirá tres columnas: líneas solo en la primera entrada (packagesList), líneas solo en la segunda entrada (pacman -Qe) y líneas en ambas entradas. Puedes utilizar las opciones-1
,-2
y-3
para suprimir columnas específicas si es necesario.