1. Introducció als entorns de treball UNIX

1.11. Buscar, ordenar i associar fitxers

1.11.5. «uniq»

Aquesta ordre t’ajuda a identificar i eliminar duplicats. S’ha d’utilitzar amb entrades ordenades, ja que la comparació es realitza només entre línies adjacents, la qual cosa significa que primer cal utilitzar l’ordre sort abans que l’ordre uniq. Es mostren a continuació les opcions d’ús comú.

  • -u mostra només les entrades úniques.
  • -d només les entrades duplicades.
  • -D mostra totes les còpies de duplicats.
  • -c prefix de comptatge.
  • -i ignora majúscules i minúscules en determinar duplicats.
  • -f omet els primers N camps la separació de camp; es basa només en un o més caràcters d’espai/tabulació.
  • -s omet els primers N caràcters.
  • -w restringeix la comparació als primers N caràcters.

De forma predeterminada, uniq retiene sólo una copia de las líneas duplicadas.

$ cat sistemes.txt
GWAS

RNA-Seq

WES

GWAS

ChIP-Seq

RNA-Seq

NGS

RNA-Seq

# Ordena i elimina els duplicats

$ sort sistemes.txt | uniq
ChIP-Seq

GWAS

NGS

RNA-Seq

WES

# Ordena i imprimeix únicament les ocurrències no repetides

$ sort sistemes.txt | uniq -u
ChIP-Seq

NGS

WES

# Ordena i imprimeix únicament les ocurrències repetides

$ sort sistemes.txt | uniq -d
GWAS

RNA-Seq

# Ordena per número d’ocurrència

$ sort sistemes.txt | uniq -c | sort -nr
     3 RNA-Seq

     2 GWAS

     1 WES

     1 NGS

     1 ChIP-Seq

Si continuem amb el fitxer hg38_RefSeq per eliminar línies duplicades consecutives, s’utilitza l’ordre uniq. És important recordar que, per a una eliminació completa de duplicats, cal ordenar l’arxiu amb sort abans d’utilitzar uniq:

$ cat hg38_RefSeq | cut -f 2,4| sort -2rn | uniq