Al trabajar con información en Linux, resulta imprescindible contar con herramientas que nos permitan comparar y analizar datos. Esto es especialmente cierto cuando manejamos archivos con listas o registros. Aquí es donde comm
entra en juego, ofreciendo una forma eficiente de contrastar dos archivos línea por línea. En este artículo, nos adentraremos en la utilidad de comm
en sistemas basados en Ubuntu y Debian, presentando una guía sencilla para todos, sin importar si es tu primera vez usando la consola de Linux o si ya eres un usuario avanzado.
Descifrando el funcionamiento de comm
Para aprovechar al máximo cualquier herramienta, primero debemos entender su esencia y funcionamiento.
¿Qué hace exactamente comm
?
comm
es un programa que compara dos archivos, siempre y cuando estén ordenados. A diferencia de otras herramientas de comparación, comm
descompone las diferencias en tres categorías:
- Líneas que sólo aparecen en el primer archivo.
- Líneas que sólo aparecen en el segundo archivo.
- Líneas que aparecen en ambos archivos.
Estructura básica del comando
La estructura fundamental para ejecutar comm
es:
comm archivo1 archivo2
Con esta instrucción, obtendremos una salida dividida en tres columnas, correspondientes a las tres categorías antes mencionadas.
Aplicaciones prácticas y ejemplos de comm
Conocer el comando es un primer paso; aplicarlo correctamente es donde realmente se ve su potencia.
Comparando listas de empleados
Supongamos que tienes dos listas: empleados_2022.txt
y empleados_2023.txt
, y quieres conocer quiénes continúan, quiénes se han ido y quiénes son nuevos:
comm empleados_2022.txt empleados_2023.txt
El resultado mostrará en la primera columna los empleados que ya no están, en la segunda los nuevos empleados y en la tercera los que continúan.
Ocultando columnas específicas
Si sólo estás interesado en, por ejemplo, los empleados nuevos y los que se han ido, puedes ocultar la tercera columna:
comm -3 empleados_2022.txt empleados_2023.txt
Comparación con otros comandos
Mientras diff
resalta las diferencias entre archivos, comm
permite un análisis más estructurado, especialmente útil cuando trabajamos con listados ordenados.
Opciones y personalizaciones avanzadas
comm
tiene una serie de opciones que nos permiten adaptar su comportamiento a nuestras necesidades.
Trabajando con archivos no ordenados
Aunque comm
requiere archivos ordenados, puedes combinarlo con sort
para ordenar al vuelo:
comm <(sort archivo1.txt) <(sort archivo2.txt)
Ignorando diferencias de mayúsculas y minúsculas
En algunos casos, quizás desees comparar archivos sin considerar diferencias de capitalización:
comm -i <(sort archivo1.txt) <(sort archivo2.txt)
Automatizando tareas con comm
Al integrar comm
en scripts y combinarlo con otras herramientas, su potencial se multiplica, permitiéndote realizar análisis detallados de manera automatizada.