Linux Command Line

Contando eficientemente líneas únicas en archivos de Linux

Spread the love

Contar líneas únicas en un archivo es una tarea común en Linux. Este artículo presenta dos métodos eficientes en la línea de comandos: usando sort y uniq, y usando awk.

Tabla de contenido

Contando líneas únicas con sort y uniq

Este método combina el poder de sort y uniq para un enfoque directo. sort ordena las líneas alfabéticamente, un requisito previo para uniq, que cuenta solo las líneas idénticas consecutivas. La opción -c en uniq agrega un prefijo de conteo a cada línea.

Para contar líneas únicas en file.txt:


sort file.txt | uniq -c

Esto muestra cada línea única con su conteo. Para obtener el número total de líneas únicas, canalice la salida a wc -l:


sort file.txt | uniq -c | wc -l

Ejemplo:

Si file.txt contiene:


manzana
plátano
manzana
naranja
plátano
manzana

sort file.txt | uniq -c produce:


      3 manzana
      2 plátano
      1 naranja

Y sort file.txt | uniq -c | wc -l produce:


3

Contando líneas únicas con awk

awk ofrece una solución flexible, particularmente útil para escenarios más complejos. Este método emplea una matriz asociativa para rastrear líneas únicas y sus conteos.

Para contar líneas únicas y mostrarlas con sus conteos:


awk '{count[$0]++} END {for (line in count) print count[line], line}' file.txt

Este script incrementa el conteo para cada línea en la matriz count, usando la línea como clave. El bloque END itera a través de la matriz, imprimiendo el conteo de cada línea y la línea misma.

Para obtener solo el conteo total de líneas únicas:


awk '{count[$0]++} END {print length(count)}' file.txt

Esto usa length(count) para mostrar directamente el número de líneas únicas (el tamaño de la matriz).

Ejemplo:

Usando el mismo file.txt, el primer comando awk produce la misma salida que el método sort | uniq -c. El segundo comando awk produce 3, indicando tres líneas únicas.

Elija el método que mejor se adapte a sus necesidades. sort y uniq son más simples para tareas básicas; awk proporciona mayor flexibilidad para escenarios complejos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *