Linux-kommandoer

Linux uniq-kommando

Linux uniq-kommando
Hvad er "uniq"? Det er et fantastisk kommandolinjeværktøj, der rapporterer eller udelader duplikattekst i det givne input. Det er en del af GNU coreutils og så tilgængelig på hvert eneste UNIX / Linux-system derude. Lad os komme i gang med “uniq”!

Uniq-brug

Sådan ser basisstrukturen for “uniq” -kommandoer ud.

uniq

Lad os f.eks. Tjekke indholdet af “duplikat.txt ”. Selvfølgelig indeholder den en masse duplikeret tekstindhold med henblik på denne artikel.

kat duplikat.txt | sortere

Der er tydeligt duplikatindhold, ikke? Lad os filtrere dem gennem "uniq".

kat duplikat | sorter | uniq

Outputtet ser så bedre ud med kun de unikke værdier, højre?

Du behøver dog bare ikke at bruge rørmetoden til at udføre jobbet. “Uniq” kan også arbejde direkte på filerne.

uniq

Sletning af duplikatindhold

Ja, at slette det duplikerede indhold fra inputet og kun beholde den første forekomst er standardadfærden for "uniq". Bemærk, at denne dobbelte sletning kun sker, når "uniq" finder samtidige duplikatelementer.

Lad os tjekke dette eksempel. Jeg har oprettet en anden “duplikat1.txt ”-fil, der indeholder duplikatelementer. Imidlertid støder de ikke op til hinanden.

bat duplikat1.txt

Filtrer nu dette output ved hjælp af "uniq".

kat duplikat1.txt | uniq

Alt det duplikerede indhold er der! Derfor, hvis du arbejder med noget der ligner dette, rør indholdet gennem "sorter" for at sikre, at alt indholdet er sorteret, og duplikater støder op til hinanden.

kat duplikat1.txt | sortere

Nu vil "uniq" udføre sit arbejde normalt.

kat duplikat1.txt | sorter | uniq

Antal gentagelser

Hvis du vil, kan du tjekke, hvor mange gange en linje gentages i indholdet. Brug bare “-c” flag med “uniq”.

kat duplikat.txt | sorter | uniq -c

Bemærk: "uniq" vil også udføre sit regelmæssige arbejde med at slette de duplikater.

Udskrivning af duplikatlinjer

De fleste gange vil vi slippe af med dubletterne, ikke? Denne gang, hvad med bare at tjekke, hvad der er duplikat?

Ja, "uniq" er også i stand til at gøre det. I dette tilfælde skal du bruge indstillingen “-D”. Jeg bruger "sorter" imellem for at få et bedre og mere raffineret resultat.

kat duplikat.txt | sorter | uniq -D

WOW! Det er en masse duplikater! Imidlertid er alle dubletter klynget sammen, hvilket gør det vanskeligt at navigere igennem. Hvad med at tilføje et lille mellemrum imellem?

uniq - alt-gentaget =

Her er der 3 forskellige metoder til rådighed: ingen (standardværdi), prepend og separat.

kat duplikat.txt | sorter | uniq - alt-gentaget = prepend

kat duplikat.txt | sorter | uniq - alt-gentaget = separat

Nu ser det bedre ud.

Spring over unikhedskontrol

I mange tilfælde skal det unikke kontrolleres af en anden del af linjen.

Lad os forstå dette ved et eksempel. I fil duplikat1.txt, lad os sige, at duplikering bestemmes af anden del. Hvordan fortæller du "uniq" at gøre det? Generelt kontrollerer det for det første felt (som standard). Nå, det kan vi også gøre. Der er dette “-f” flag, der bare gør jobbet.

uniq -f
kat duplikat1.txt | sorter -k 2 | uniq -f 1

Hvis du spekulerer på med "sorter" -flagget, er det at fortælle "sorter" at sortere ud fra den anden kolonne.

Vis alle linjer, men adskilte dubletter

Ifølge alle eksemplerne nævnt ovenfor beholder “uniq” kun den første forekomst af det duplikerede indhold og fjerner resten. Hvad med at fjerne det duplikerede indhold helt? Ja, ved hjælp af flaget “-u” kan vi tvinge “uniq” til kun at beholde de ikke-gentagne linjer.

kat duplikat.txt | sortere

kat duplikat.txt | sorter | uniq -u

Hmm, for mange dubletter er nu væk ..

Spring indledende tegn over

Vi diskuterede, hvordan man skulle fortælle “uniq” at gøre sit job inden for andre felter, ikke? Det er tid til at starte kontrollen efter et antal indledende tegn. Til dette formål vil "-s" -flaget ledsaget af antallet af tegn fortælle "uniq" at udføre jobbet.

kat duplikat1.txt | sorter -k 2 | uniq -s 2

Det ligner eksemplet, hvor “uniq” kun var at udføre sin opgave i det andet felt. Lad os se et andet eksempel med dette trick.

kat duplikat.txt | sorter | uniq -s 5

Kontroller KUN de første tegn

Ligesom den måde, vi fortalte “uniq” at springe over de første par karakterer, er det også muligt at fortælle “uniq” at bare begrænse kontrollen inden for de første par tegn. Der er et dedikeret “-w” flag til dette formål.

kat duplikat.txt | sorter | uniq -w 5

Denne kommando fortæller “uniq” at udføre entydighedskontrol inden for de første 5 tegn.

Lad os se et andet eksempel på denne kommando.

kat duplikat1.txt | sorter | uniq -w 5

Det udsletter alle de andre forekomster af "duplikerede" poster, fordi det gjorde det unikke ved "dupli" -delen.

Sagsfølsomhed

Når der kontrolleres for entydighed, kontrollerer “uniq” også for tegnene. I nogle situationer betyder sagsfølsomhed ikke noget, så vi kan bruge flaget “-i” til at gøre “uniq” -sensfølsom.

Her præsenterer jeg Demofilen.

Nogle virkelig kloge duplikater med en blanding af store og små bogstaver, højre? Det er tid til at påkalde styrken ved "uniq" til at rense rodet!

kat duplikat1.txt | sorter | uniq -i

Ønsket imødekommet!

NULL-afsluttet output

Standardopførelsen for "uniq" er at afslutte output med en ny linje. Dog kan output også afsluttes med en NULL. Det er ret nyttigt, hvis du vil bruge det til scripting. Her er flaget “-z”, hvad der gør jobbet.

kat duplikat.txt | sorter | uniq -z

Kombinerer flere flag

Vi lærte et antal flag af "uniq", højre? Hvad med at kombinere dem sammen?

For eksempel kombinerer jeg sag-ufølsomhed og antal gentagelser sammen.

Hvis du nogensinde planlægger at blande flere flag sammen, skal du først sørge for at de fungerer på den rigtige måde sammen. Nogle gange fungerer tingene bare ikke som de skal.

Afsluttende tanker

“Uniq” er et ganske unikt værktøj, som Linux tilbyder. Med så mange kraftfulde funktioner kan det være nyttigt på mange måder. For en liste over alle flagene og deres forklaringer, se manden og infosiderne i “uniq”.

mand uniq

info uniq

god fornøjelse!

Mus Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
I de senere år har computere og operativsystemer udviklet sig meget. Der var et tidspunkt, hvor brugerne skulle bruge kommandoer til at navigere genne...
Mus Styr og administrer musebevægelse mellem flere skærme i Windows 10
Styr og administrer musebevægelse mellem flere skærme i Windows 10
Dual Display Mouse Manager lader dig kontrollere og konfigurere musebevægelse mellem flere skærme ved at bremse dens bevægelser nær grænsen. Windows 1...
Mus WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
Hvis du vil forbedre standardfunktionerne for din musemarkør, skal du bruge freeware WinMouse. Det tilføjer flere funktioner, der hjælper dig med at f...