Inicio > Procesamiento y búsqueda de texto > uniq

uniq: Eliminar y contar líneas duplicadas

El comando `uniq` se utiliza para encontrar y eliminar líneas consecutivas repetidas en un archivo de texto o en la entrada estándar, o para contar el número de líneas duplicadas con opciones específicas. En particular, la opción `-c` es útil para el análisis de datos, ya que antepone el recuento de cuántas veces se repite cada línea a la propia línea.

Resumen

`uniq` se usa comúnmente en combinación con el comando `sort` a través de una tubería (|) para procesar eficientemente líneas duplicadas en datos ordenados. La opción `-c` facilita la identificación de la cantidad de líneas duplicadas.

Características principales

  • Procesamiento de líneas duplicadas consecutivas
  • Conteo de líneas duplicadas (-c)
  • Opción para ignorar mayúsculas y minúsculas (-i)
  • Comparación ignorando campos o caracteres específicos

Opciones principales

Funcionalidad

Método de comparación

Comando generado:

Combina los comandos.

Descripción:

`uniq` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Calcular la frecuencia de palabras en un archivo

sort words.txt | uniq -c

Cuenta cuántas veces aparece cada palabra (línea) en el archivo `words.txt` y lo imprime. Dado que `uniq` solo procesa duplicados consecutivos, primero se usa `sort` para hacer que todas las duplicaciones sean adyacentes.

Encontrar las líneas más frecuentes en un archivo de registro

cat log.txt | sort | uniq -c | sort -nr

Cuenta la frecuencia de líneas duplicadas en un archivo de registro y muestra las líneas más frecuentes desde la parte superior, ordenadas de forma descendente por su recuento (número).

Contar líneas duplicadas ignorando mayúsculas/minúsculas

echo -e "Apple\napple\nBanana\napple" | sort | uniq -ci

Considera 'Apple' y 'apple' como iguales en la entrada estándar y cuenta la cantidad de duplicados para imprimirlos.

Contar líneas duplicadas ignorando campos específicos

sort -k2 data.txt | uniq -f 1 -c

Ignora el primer campo del archivo y compara desde el segundo campo para contar las líneas duplicadas e imprimir el resultado. (Por ejemplo, si el contenido de `data.txt` es `ID1 apple`, `ID2 apple`, se contará 'apple' como 2 veces).

Consejos y precauciones

El comando `uniq` procesa por defecto solo las líneas que están 'consecutivamente' duplicadas. Por lo tanto, para eliminar o contar duplicados en todo el archivo, primero debe ordenar las líneas usando el comando `sort`.

Consejos de uso

  • Uso con sort: `uniq` solo procesa duplicados consecutivos, por lo que para procesar duplicados en todo el archivo, primero debe ordenarlos con `sort`. Ejemplo: `sort file.txt | uniq -c`
  • Encontrar los elementos más frecuentes: Puede canalizar el resultado de `uniq -c` a `sort -nr` para ordenar los elementos más frecuentes en orden descendente. Ejemplo: `sort file.txt | uniq -c | sort -nr`
  • Consideraciones de rendimiento: Para archivos muy grandes, se debe considerar el uso de memoria de `sort` y `uniq`. Si es necesario, puede especificar un directorio temporal usando la opción `-T` de `sort`.

comandos relacionados

Son comandos que son funcionalmente similares o que se usan juntos con frecuencia.


Comandos de la misma categoría