uniq (único)
100%

Text-Fu · Lección 14

uniq (único)

Aprende a agrupar, contar o filtrar grupos adyacentes de líneas iguales con uniq.

La orden uniq compara cada línea de entrada con la línea anterior. Puede agrupar, contar o seleccionar grupos de líneas iguales adyacentes, pero no busca duplicados separados por todo el archivo.

Agrupar líneas duplicadas adyacentes

Supón que reading.txt contiene valores agrupados:

book
book
paper
paper
article
article
magazine

Ejecuta uniq sin opciones de filtrado para imprimir una línea representativa de cada grupo adyacente:

$ uniq reading.txt
book
paper
article
magazine

El archivo de entrada no cambia porque el resultado se envía a la salida estándar.

¿Qué hace uniq reading.txt de forma predeterminada?

Contar grupos adyacentes

Usa -c para anteponer a cada grupo de salida su cantidad de líneas de entrada consecutivas:

$ uniq -c reading.txt
      2 book
      2 paper
      2 article
      1 magazine

Estas cantidades representan longitudes de secuencias, no totales globales, salvo que antes se hayan colocado juntas todas las líneas iguales.

¿Qué representa la cantidad de uniq -c?

Seleccionar grupos únicos o repetidos

Usa -u para imprimir solo los grupos que contienen exactamente una línea:

$ uniq -u reading.txt
magazine

Usa -d para imprimir una línea representativa de cada grupo adyacente que contenga más de una línea:

$ uniq -d reading.txt
book
paper
article

uniq -D de GNU imprime todas las líneas de los grupos repetidos, mientras que -d en minúscula imprime una vez el valor de cada grupo repetido.

¿Qué orden imprime únicamente los grupos adyacentes que aparecen exactamente una vez?

¿Qué orden imprime una línea por cada grupo adyacente que aparece más de una vez?

Agrupar duplicados separados

Si las líneas iguales están separadas, forman grupos diferentes:

book
paper
book
paper
article
magazine
article

Ejecutar uniq sobre este archivo produce un resultado que puede sorprender:

$ uniq reading.txt
book
paper
book
paper
article
magazine
article

No se agrupa ninguna línea porque los valores vecinos son distintos. Ordena primero cuando sea aceptable cambiar el orden y quieras reunir líneas completas iguales:

$ sort reading.txt | uniq
article
book
magazine
paper

Usa una configuración regional y una política de comparación uniformes en ambos pasos. sort -u reading.txt también puede ordenar y conservar una línea por cada clave de ordenación igual en una sola orden.

Hay líneas iguales dispersas por reading.txt y el orden de salida puede cambiar. ¿Qué tubería produce una copia ordenada de cada línea completa distinta?

uniq lee de la entrada estándar cuando no se indica un archivo de entrada, por eso encaja de forma natural después de sort. Opciones de GNU como -i pueden ignorar las mayúsculas, mientras que -f, -s y -w pueden omitir o limitar regiones de comparación; úsalas solo cuando la igualdad deba definirse mediante una parte de cada línea.

Para practicar cómo agrupar, contar y filtrar duplicados, prueba estos laboratorios prácticos:

  1. Orden uniq de Linux: filtrado de duplicados - Aprende a usar uniq junto con sort para identificar, filtrar y analizar líneas duplicadas en archivos de texto.
  2. Orden sort de Linux: ordenación de texto - Practica el uso de sort para organizar líneas de archivos de texto, un paso crucial para usar uniq de manera eficaz.
  3. Recuento de palabras y ordenación - Aprende las herramientas esenciales wc y sort en este desafío práctico: cuenta líneas, palabras y caracteres, encuentra patrones frecuentes y ordena datos de forma eficiente.

Lección completada

Has completado uniq (único)

Ahora puedes analizar grupos adyacentes de líneas iguales con uniq.

  • Reduce cada grupo duplicado adyacente a una línea.

  • Cuenta apariciones consecutivas con -c.

  • Selecciona grupos de una sola línea con -u.

  • Selecciona grupos repetidos con -d o con -D de GNU.

  • Ordena primero cuando sea necesario agrupar duplicados separados.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Siguiente Lección
Volver a Text-Fu