systemadmin.es > Utilidades > Uso de uniq: Herramientas UNIX (XIII)

Uso de uniq: Herramientas UNIX (XIII)

Mediante el uso de uniq podemos gestionar las lineas repetidas de un fichero de la salida de algún comando. Vamos a ver su uso:

Suponiendo la siguiente salida:

$ echo -e 'a\na\nb\na\nb\nc\nc\nc'
a
a
b
a
c
c
c

Podemos ver como mediante uniq se eliminamos las lineas repetidas consecutivas:

$ echo -e 'a\na\nb\na\nb\nc\nc\nc' | uniq
a
b
a
c

En el caso que queramos eliminar globalmente las lineas repetidas deberemos combinar el uniq con sort:

$ echo -e 'a\na\nb\na\nb\nc\nc\nc' | sort |uniq
a
b
c

En el caso que quisiéramos obtener el número de lineas que tiene queda tipo de linea podemos contarlas con la opción -c:

$ echo -e 'a\na\nb\na\nb\nc\nc\nc' | sort |uniq -c
      3 a
      2 b
      3 c

En el caso que queramos obtener las lineas que no están repetidas podemos usar la opción -u:

$ echo -e 'a\na\nb\na\nb\nc\nc\nc' | uniq -u
b
a
b

Por el contrario, si queremos que nos muestre las lineas que están repetidas tenemos la opción -d:

# echo -e 'a\na\nb\na\nb\nc\nc\nc' | uniq -d
a
c

En el caso que necesitemos ignorar algunos caracteres iniciales podemos usar la opción -s. Por ejemplo, suponiendo la siguiente salida:

$ echo -e 'a1\nb1\nc2\nd2'
a1
b1
c2
d2

Si queremos fijarnos en el segundo elemento podemos usar la opción -s con el parámetro 1:

$ echo -e 'a1\nb1\nc2\nd2' | uniq -s1
a1
c2

One comment to “Uso de uniq: Herramientas UNIX (XIII)”

  1. Creo que en el penúltimo ejemplo hay un typo y te faltaría el ” | uniq -s”

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>