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
23. December 2011 at 9:18 pm :
Creo que en el penúltimo ejemplo hay un typo y te faltaría el ” | uniq -s”