1.11. Buscar, ordenar y asociar ficheros
1.11.5. «uniq»
Este comando te ayuda a identificar y eliminar duplicados. Se ha de utilizar con entradas ordenadas, ya que la comparación se realiza solo entre líneas adyacentes, lo que significa que primero hay que utilizar el comando sort antes que el comando uniq. Se muestran a continuación las opciones de uso común.
-umuestra solo las entradas únicas.-dmuestra solo las entradas duplicadas.-Dmuestra todas las copias de duplicados.-cprefijo de conteo.-iignora mayúsculas y minúsculas al determinar duplicados.-fomite los primeros N campos la separación de campo; se basa solo en uno o más caracteres de espacio/tabulación.-somite los primeros N-wrestringe la comparación a los primeros N
De forma predeterminada, uniq retiene sólo una copia de las líneas duplicadas.
$ cat sistemas.txt
GWAS RNA-Seq WES GWAS ChIP-Seq RNA-Seq NGS RNA-Seq
# Ordena y elimina los duplicados
$ sort sistemas.txt | uniq
ChIP-Seq GWAS NGS RNA-Seq WES
# Ordena e imprime únicamente las ocurrencias no repetidas
$ sort sistemas.txt | uniq -u
ChIP-Seq NGS WES
# Ordena e imprime únicamente las ocurrencias repetidas
$ sort sistemas.txt | uniq -d
GWAS RNA-Seq
# Ordena por número de ocurrencia
$ sort sistemas.txt | uniq -c | sort -nr
3 RNA-Seq 2 GWAS 1 WES 1 NGS 1 ChIP-Seq
Si continuamos con el fichero hg38_RefSeq para eliminar líneas duplicadas consecutivas, se utiliza el comando uniq. Es importante recordar que, para una eliminación completa de duplicados, es necesario ordenar el archivo con sort antes de utilizar uniq:
$ cat hg38_RefSeq | cut -f 2,4| sort -2rn | uniq