Comenzi Linux

Comandă Linux uniq

Comandă Linux uniq
Ce este „uniq”? Este un instrument excelent din linia de comandă care va raporta sau omite orice text duplicat din intrarea dată. Este o parte a coreutil-urilor GNU și așadar, disponibilă pe fiecare sistem UNIX / Linux. Să începem cu „uniq”!

Utilizarea Uniq

Iată cum arată structura de bază a comenzilor „uniq”.

uniq

De exemplu, să verificăm conținutul „duplicat”.txt". Desigur, conține o mulțime de conținut text duplicat în scopul acestui articol.

duplicat de pisică.txt | fel

Există conținut clar duplicat, corect? Să le filtrăm prin „uniq”.

pisica duplicat | sortare | uniq

Rezultatul arată atât de bine cu doar valorile unice, corect?

Cu toate acestea, nu trebuie să utilizați metoda de conducte pentru a face treaba. „Uniq” poate funcționa direct și pe fișiere.

uniq

Ștergerea conținutului duplicat

Da, ștergerea conținutului duplicat din intrare și păstrarea numai a primei apariții este comportamentul implicit al „uniq”. Rețineți că această ștergere duplicat are loc numai atunci când „uniq” găsește elemente duplicate simultane.

Să vedem acest exemplu. Am creat un alt „duplicat1”.txt ”care conține elemente duplicat. Cu toate acestea, nu sunt adiacente una cu cealaltă.

duplicat de liliac1.txt

Acum, filtrați această ieșire folosind „uniq”.

pisica duplicat1.txt | uniq

Tot conținutul duplicat este acolo! De aceea, dacă lucrați cu ceva similar cu acesta, treceți conținutul prin „sortare” pentru a vă asigura că tot conținutul este sortat și că duplicatele sunt adiacente una cu cealaltă.

pisica duplicat1.txt | fel

Acum, „uniq” își va face treaba în mod normal.

pisica duplicat1.txt | sortare | uniq

Numărul de repetări

Dacă doriți, puteți verifica de câte ori se repetă o linie în conținut. Folosiți doar steagul „-c” cu „uniq”.

duplicat de pisică.txt | sortare | uniq -c

Notă: „uniq” își va face de asemenea sarcina obișnuită de ștergere a celor duplicate.

Tipărirea liniilor duplicat

De cele mai multe ori, vrem să scăpăm de duplicate, corect? De data aceasta, ce zici de verificarea a ceea ce este duplicat?

Da, „uniq” poate face acest lucru. În acest caz, trebuie să utilizați opțiunea „-D”. Voi folosi „sortare” între ele pentru a avea un rezultat mai bun și mai rafinat.

duplicat de pisică.txt | sortare | uniq -D

WOW! Este o mulțime de duplicate! Cu toate acestea, toate duplicatele sunt grupate împreună, ceea ce face dificilă navigarea prin. Ce zici de adăugarea unui mic decalaj între ele?

uniq --all-repeat =

Aici sunt disponibile 3 metode diferite: niciuna (valoare implicită), prepend și separată.

duplicat de pisică.txt | sortare | uniq --all-repeat = prepend

duplicat de pisică.txt | sortare | uniq --all-repeat = separate

Acum, arată mai bine.

Omiterea verificării unicității

În multe cazuri, unicitatea trebuie verificată de o altă parte a liniei.

Să înțelegem acest lucru prin exemplu. În fișierul duplicat1.txt, să spunem că duplicarea este determinată de partea a doua. Cum spuneți „uniq” să facă asta? În general, verifică primul câmp (implicit). Ei bine, putem face și asta. Există acest steag „-f” pentru a face doar treaba.

uniq -f
pisica duplicat1.txt | sortare -k 2 | uniq -f 1

Dacă vă întrebați cu steagul „sortare”, trebuie să spuneți „sortare” să sorteze pe baza celei de-a doua coloane.

Afișați toate liniile, dar duplicatele separate

Conform tuturor exemplelor menționate mai sus, „uniq” păstrează doar prima apariție a conținutului duplicat și elimină restul. Ce zici de eliminarea completă a conținutului duplicat? Da, folosind steagul „-u”, putem forța „uniq” să păstreze numai liniile care nu se repetă.

duplicat de pisică.txt | fel

duplicat de pisică.txt | sortare | uniq -u

Hmm, prea multe duplicate au dispărut acum ..

Omiteți caracterele inițiale

Am discutat cum să spunem „uniq” să-și facă treaba pentru alte domenii, corect? Este timpul să începeți verificarea după un număr de caractere inițiale. În acest scop, steagul „-s” însoțit de numărul de caractere îi va spune „uniq” să facă treaba.

pisica duplicat1.txt | sortare -k 2 | uniq -s 2

Este similar cu exemplul în care „uniq” trebuia să își îndeplinească sarcina numai în al doilea câmp. Să vedem un alt exemplu cu acest truc.

duplicat de pisică.txt | sortare | uniq -s 5

Verificați NUMAI caracterele inițiale

La fel ca modul în care i-am spus „uniq” să sară peste primele caractere, este de asemenea posibil să îi spunem „uniq” să limiteze doar verificarea în primele două caractere. Există un steag „-w” dedicat în acest scop.

duplicat de pisică.txt | sortare | uniq -w 5

Această comandă spune „uniq” să efectueze verificarea unicității în primele 5 caractere.

Să vedem un alt exemplu al acestei comenzi.

pisica duplicat1.txt | sortare | uniq -w 5

Șterge toate celelalte instanțe de intrări „duplicate”, deoarece a efectuat verificarea unicității în partea „dupli”.

Insensibilitate la caz

Când verificați unicitatea, „uniq” verifică și cazul caracterelor. În unele situații, sensibilitatea la majuscule și minuscule nu contează, așa că putem folosi steagul „-i” pentru a face „uniq” nesensibil.

Aici vă prezint fișierul demonstrativ.

Unele duplicări cu adevărat inteligente, cu un amestec de litere mari și mici, nu? Este timpul să apelăm la forța „uniq” pentru a curăța mizeria!

pisica duplicat1.txt | sortare | uniq -i

Dorinta indeplinita!

Iesire terminata NULL

Comportamentul implicit al „uniq” este de a termina ieșirea cu o linie nouă. Cu toate acestea, ieșirea poate fi terminată și cu un NULL. Acest lucru este destul de util dacă îl veți folosi în scripturi. Aici, steagul „-z” este ceea ce face treaba.

duplicat de pisică.txt | sortare | uniq -z

Combinând mai multe steaguri

Am învățat o serie de steaguri ale „uniq”, corect? Ce zici de combinarea lor?

De exemplu, combin insensibilitatea cazului și numărul de repetări împreună.

Dacă intenționați vreodată să amestecați mai multe steaguri împreună, la început, asigurați-vă că acestea funcționează corect. Uneori, lucrurile pur și simplu nu funcționează așa cum ar trebui.

Gânduri finale

„Uniq” este un instrument destul de unic pe care Linux îl oferă. Cu atât de multe funcții puternice, poate fi util în multe moduri. Pentru lista tuturor steagurilor și explicațiile acestora, consultați paginile de informații despre „uniq”.

om uniq

info uniq

Bucurați-vă!

Cele mai bune emulatoare pentru console de jocuri pentru Linux
Acest articol va enumera programele populare de emulare a consolei de jocuri disponibile pentru Linux. Emularea este un strat de compatibilitate softw...
Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...
Cum să capturați și să transmiteți în flux sesiunea de jocuri pe Linux
În trecut, jocurile erau considerate doar un hobby, dar cu timpul industria jocurilor a cunoscut o creștere imensă în ceea ce privește tehnologia și n...