es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, existe una manera de comparar el contenido del archivo de texto packagesList con la salida del comando pacman -Qe utilizando el comando comm. Puedes utilizar la sustitución de proceso para comparar las dos salidas sin necesidad de guardar primero la salida de pacman -Qe en un archivo. Así es como puedes hacerlo:

    comm <(sort packagesList) <(pacman -Qe | sort)
    

    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 porque comm requiere entradas ordenadas. Si tus entradas ya están ordenadas, puedes saltarte este paso.
    • La primera entrada para comm es el contenido ordenado del archivo packagesList.
    • La segunda entrada para comm es la salida ordenada del comando pacman -Qe encerrada en la sustitución de proceso.
    • < se utiliza para redirigir las salidas de los dos comandos como entradas a comm.

    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.

Comments are closed.