Ejemplos prácticos de uso de comm
Ahora que entiendes el uso básico del comando comm, exploremos algunos ejemplos prácticos que demuestren su utilidad en escenarios del mundo real.
Ejemplo 1: Encontrar nuevas entradas
Imagina que tienes dos listas de usuarios: una de la semana pasada y otra de hoy. Quieres identificar qué usuarios son nuevos (agregados desde la semana pasada).
Creemos estos archivos:
cd ~/project/comm-lab
echo -e "user1\nuser2\nuser3\nuser4\nuser5" | sort > users_last_week.txt
echo -e "user1\nuser3\nuser5\nuser6\nuser7\nuser8" | sort > users_today.txt
Para encontrar los nuevos usuarios (en users_today.txt pero no en users_last_week.txt):
comm -13 users_last_week.txt users_today.txt
Salida:
user6
user7
user8
Ejemplo 2: Encontrar entradas eliminadas
Usando los mismos archivos, encontremos qué usuarios se han eliminado desde la semana pasada:
comm -23 users_last_week.txt users_today.txt
Salida:
user2
user4
Ejemplo 3: Combinar comm con otros comandos
El comando comm se puede combinar con otros comandos para operaciones más complejas. Por ejemplo, si queremos contar cuántos comandos comunes hay en nuestros archivos originales:
comm -12 commands1.txt commands2.txt | wc -l
Esto envía las líneas comunes al comando wc -l, que cuenta el número de líneas.
Salida:
5
Esto indica que hay 5 comandos comunes a ambos archivos.
Ejemplo 4: Usar comm con archivos desordenados
El comando comm requiere archivos de entrada ordenados. Si intentas usarlo con archivos desordenados, es posible que obtengas resultados incorrectos. Demostremos esto:
echo -e "cat\nls\npwd\ncd" > unsorted1.txt
echo -e "ls\ncat\ngrep\npwd" > unsorted2.txt
Si intentamos usar comm directamente:
comm unsorted1.txt unsorted2.txt
La salida puede ser engañosa porque los archivos no están ordenados. El enfoque correcto es ordenar los archivos primero:
comm <(sort unsorted1.txt) <(sort unsorted2.txt)
Esto utiliza la sustitución de procesos para ordenar los archivos sobre la marcha antes de compararlos. Deberías ver un resultado con formato adecuado y las columnas correctas.
Estos ejemplos demuestran la versatilidad del comando comm para comparar archivos de texto en diversos escenarios, como el seguimiento de cambios, la búsqueda de diferencias y el filtrado de datos.