logo

Comandament uniq a Linux amb exemples

El únic L'ordre a Linux és una utilitat de línia d'ordres que informa o filtra les línies repetides d'un fitxer. En paraules senzilles, únic és l'eina que ajuda a detectar les línies duplicades adjacents i també elimina les línies duplicades. únic filtra les línies coincidents adjacents del fitxer d'entrada (que es requereix com a argument) i escriu les dades filtrades al fitxer de sortida.

Taula de contingut



llenguatge màquina

Sintaxi de l'ordre uniq

La sintaxi bàsica del ` uniq`> l'ordre és:

uniq [OPTIONS] [INPUT_FILE [OUTPUT_FILE]]>

Aquí,

  • `OPTIONS`> : Banderes opcionals que modifiquen el comportament del ` uniq`> comandament.
  • `INPUT_FILE`> : el camí al fitxer d'entrada que conté les dades de text. Si no s'especifica, ` uniq`> llegeix des de l'entrada estàndard (normalment el teclat).
  • `OUTPUT_FILE`> : El camí al fitxer de sortida on s'escriuran les línies úniques. Si no s'especifica, ` uniq`> escriu a la sortida estàndard (normalment el terminal).

Opcions comuns del uniq> Comandament

Aquí hi ha algunes opcions habituals que es poden utilitzar amb el ` uniq`> comandament:



Opcions

Descripció

-c, -compte



Prefixeu les línies pel nombre d'ocurrències a l'entrada, seguit d'un espai.

-d, -va repetir

Només les línies de sortida que es repeteixen a l'entrada.

-i, –ignora majúscules i minúscules

Ignoreu les diferències de cas quan compareu línies.

-f, –skip-fields=N

Eviteu comparar els primers N camps de cada línia.

-s, –skip-chars=N

Eviteu comparar els primers N caràcters de cada línia.

-u, –únic

Només les línies de sortida que són úniques a l'entrada.

Exemples d'ús del ` uniq`> Comandament

Ara, anem a entendre l'ús d'això amb l'ajuda d'un exemple. Suposem que teniu un fitxer de text anomenat kt.txt que conté línies repetides que s'han d'ometre. Això es pot fer simplement amb uniq.

//displaying contents of kt.txt//   $cat kt.txt   I love music. I love music. I love music. I love music of Kartik. I love music of Kartik. Thanks.>

Com eliminar línies duplicades mitjançant l'ordre `uniq`

Per eliminar les línies duplicades de ` kt.txt`> , podem utilitzar el ` uniq`> comandament:

uniq kt.txt>

eliminar línies duplicades

eliminar línies duplicades

Com podeu veure que acabem d'utilitzar el nom del fitxer d'entrada a l'exemple d'uniq anterior i com que no hem utilitzat cap fitxer de sortida per emmagatzemar la sortida produïda, l'ordre uniq va mostrar la sortida filtrada a la sortida estàndard amb tots els duplicats. línies eliminades.

Nota: únic no és capaç de detectar les línies duplicades tret que estiguin adjacents entre si. Per tant, el contingut del fitxer s'ha d'ordenar abans d'utilitzar uniq o simplement podeu utilitzar-lo ordena -u en lloc de l'ordre uniq.

Com comptar línies duplicades utilitzant l'ordre `uniq` a Linux

El ` -c`> L'opció prefixa cada línia amb el nombre d'ocurrències a l'entrada:

uniq -c kt.txt>
Recompte de l'aparició de línies duplicades

Recompte de l'aparició de línies duplicades

En aquest exemple a l'inici de cada línia es mostra el seu número repetit

Com mostrar línies repetides mitjançant l'ordre `uniq` a Linux

El ` -d`> L'opció només imprimeix línies duplicades:

uniq -d kt.txt>
mostrar només línies duplicades

mostrar només línies duplicades

Com mostrar totes les línies duplicades mitjançant l'ordre `uniq` a Linux

El ` -D`> L'opció imprimeix totes les línies duplicades, no només una per grup:

uniq -D kt.txt>
imprimeix totes les línies duplicades

imprimeix totes les línies duplicades

Com mostrar línies úniques mitjançant l'ordre `uniq` a Linux

El ` -u`> L'opció només imprimeix línies úniques:

uniq -u kt.txt>

imprimeix només línies úniques

imprimeix només línies úniques

Saltant els primers N camps ( -f> opció) Utilitzant l'ordre `uniq` a Linux

El ` -f N`> L'opció salta els primers N camps abans de comparar línies. Útil per a línies numerades:

uniq -f 2 f1.txt>

//mostrant el contingut de f1.txt//
1. M'encanta la música.
2. M'encanta la música.
3. M'encanta la música de Kartik.
4. M'encanta la música de Kartik.

Opció `-s N`

Opció `-s N`

En aquest exemple, s'utilitza 2 perquè havíem de comparar les línies després de la numeració 1,2... i després dels punts

Saltant els primers N caràcters ( -s> opció) Utilitzant l'ordre `uniq` a Linux

El ` -s N`> L'opció omet els primers N caràcters de cada línia:

//mostrant contingut de f2.txt//
#%@M'encanta la música.
^&(M'encanta la música.
*-!@gràcies.
#%@! gràcies.

uniq -s 3 f2.txt>

En aquest exemple es filtren les mateixes línies després de saltar 3 caràcters.

Opció `-s N`

Opció `-s N`

Limitació de la comparació als primers N caràcters ( -w> opció) Utilitzant l'ordre `uniq` a Linux

Utilitzant l'opció -w: De manera similar a la manera de saltar caràcters, també podem demanar a uniq que limiti la comparació a un nombre determinat de caràcters. Per a això, s'utilitza l'opció de línia d'ordres -w.

//mostrant contingut de f3.txt//
Com és possible?
Com es pot fer?
Com utilitzar-lo?

uniq -w 3 f3.txt>

Com que els 3 primers caràcters de les 3 línies són iguals, per això uniq va tractar tots aquests com a duplicats i va donar la sortida en conseqüència.

Utilitzant l'opció -w

Utilitzant l'opció -w

Comparació sense distinció entre majúscules i minúscules ( -i> opció) Utilitzant l'ordre `uniq` a Linux

El ` -i`> L'opció fa que la comparació no distingeix entre majúscules i minúscules:

estructures de dades java

//mostrant el contingut de f4.txt//
M'ENCANTA LA MÚSICA
m'encanta la música
GRÀCIES

uniq f4.txt>

Aquí les línies no es tracten com a duplicats amb un simple ús d'uniq

//ara utilitzant l'opció -i//

uniq -i f4.txt>

Ara s'elimina la segona línia quan s'utilitza l'opció -i.

la comparació no distingeix entre majúscules i minúscules

la comparació no distingeix entre majúscules i minúscules

Sortida acabada NULL ( -z> opció) Utilitzant l'ordre `uniq` a Linux

Utilitzant l'opció -z: De manera predeterminada, la sortida que produeix uniq acaba amb una nova línia. Tanmateix, si voleu, voleu tenir una sortida acabada amb NULL (útil per tractar amb uniq als scripts). Això es pot fer possible mitjançant l'opció de línia d'ordres -z.

Sintaxi:

uniq -z file-name>

Conclusió

En aquest article hem parlat deuniq>L'ordre a Linux és una eina versàtil per gestionar línies duplicades en fitxers de text. En entendre les seves diverses opcions, podeu gestionar i processar dades de text de manera eficient. Experimenta amb diferents opcions i exemples per dominar l'ús deluniq>comandament.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L