Asignar("texto_indice.php","Índice"); $navIzq->Asignar("texto_cap6.php","Capítulo 6"); $navDer->Asignar("texto_cap8.php","Capítulo 8") ?>

7. La utilidad uniq.

Se utiliza para suprimir líneas duplicadas adyacentes de un archivo. Si dos o más salidas adyacentes de la entrada son iguales, se borrarán todas menos una. Cuando no se dan nombres de ficheros se emplea la entrada y la salida estándar.

  uniq [-udc] [+n] [-n] [file.in [file.out]]
  -c Antepone a cada línea el número de veces que ha estado presente en la entrada.
  -d Se da salida sólo a una copia de cada línea.
  -u Se da salida sólo a aquellas líneas que no están repetidas (el comportamiento por defecto del comando equivale a la combinación de -ud).
  -n Ignora los primeros n campos de una línea así como los espacios iniciales (un blanco es un espacio o un tabulador).
  +n Ignora los primeros n caracteres de una línea cuando se compara buscando duplicaciones.

¡Cuidado! Si un campo está vacío, uniq lo considerará inexistente y pasará de él. Es muy importante recordar que sólo suprime las líneas duplicadas adyacentes. Podría ser necesario primero realizar una ordenación del fichero antes de pasar a utilizar la orden uniq.

EJEMPLOS.

El fichero de titulados posee los alumnos agrupados por planes de estudio (el primer campo). Podríamos estar interesados en saber cuántos alumnos hay de cada plan. Una forma simple de hacerlo sería

$ tail +2 titulos.lis | cut -f1 | uniq -c > out.lis

donde hemos tenido primero que quitar la primera línea del fichero titulos.lis que es la que indica a qué corresponde cada campo de fichero. (Veremos más adelante el uso de cut.)