uniq: comanda Linux per cercar text duplicat

De vegades, és probable que tinguis fitxers de text molt llargs entre els quals és complicat cercar certs patrons o línies o paraules que es troben duplicades, o potser hi ha un munt de fitxers de text de mida petita on voleu buscar coincidències d'una forma més senzilla, i fins i tot utilitzar una pipe i buscar coincidències a la sortida d'una ordre. Doncs bé, uniq és l'ordre que estàs buscant per això.

Amb uniq podràs cercar informació redundant de manera molt senzilla. A més, també et permetrà eliminar aquests duplicats si ho necessites. I, en aquest tutorial, podreu veure alguns exemples de l'ordre que us poden resultar pràctics. Recorda que està instal·lat per defecte a la gran majoria de distros, per la qual cosa no hauràs d'instal·lar el paquet…

Bé, abans de res, vegem un exemple per entendre bé la base de funcionament de l'ordre uniq i què fa i què no fa. Per EXEMPLE, imagina que crees un fitxer de text anomenat prova.txt, i dins poses diverses frases o paraules repetides, com ara repetir tres línies «Hola, això és una prova» i després uses uniq amb ell:

nano prueba.txt

uniq prueba.txt

Doncs bé, en aquest cas, la sortida de l'ordre serà simplement:

Salida:

Hola, esto es una prueba

És a dir, posar una sola línia «Hola, això és una prova» eliminant les altres 2 que són iguals. Però compte, si tornes a fer servir cat per veure l'original, veuràs que no s'han eliminat del fitxer, simplement les ha eliminat de la sortida:

cat prueba.txt

La sortida del qual seria:

Hola, esto es una prueba

Hola, esto es una prueba

Hola, esto es una prueba

Però la comanda uniq té moltes més opcions disponibles. Per exemple, et pot dir la quantitat de vegades que es repeteix una línia, indicant al principi de la línia el nombre de repeticions. Per això:

uniq -c prueba.txt

També podries simplement imprimir en pantalla les línies repetides, i obviar les no repetides:

uniq -d prueba.txt

O les que no estan duplicades amb l'opció -u:

uniq -u prueba.txt

per utilitzar case-sentitive i diferenciar entre majúscules i minúscules, pots fer servir l'opció -i:

uniq -i prueba.txt

Bé, i com es podria fer per crear un fitxer només amb les línies úniques, eliminant d'una vegada totes les repetides. Doncs és tan senzill com fer servir una canonada per canalitzar la sortida d'uniq a un fitxer de text nou:

uniq prueba.txt > unicas.txt


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.