Linux-opdrachten

Linux uniq-opdracht

Linux uniq-opdracht
Wat is "uniek"? Het is een geweldige opdrachtregeltool die dubbele tekst in de gegeven invoer rapporteert of weglaat. Het maakt deel uit van de GNU coreutils en is dus beschikbaar op elk enkel UNIX/Linux-systeem dat er is. Laten we beginnen met "uniq"!

Uniek gebruik

Zo ziet de basisstructuur van "uniq"-opdrachten eruit:.

uniek

Laten we bijvoorbeeld eens kijken naar de inhoud van "duplicaat".tekst". Natuurlijk bevat het veel dubbele tekstinhoud voor het doel van dit artikel.

kat duplicaat.txt | soort

Er is duidelijk dubbele inhoud, toch? Laten we ze filteren via "uniq".

kat duplicaat | sorteren | uniek

De uitvoer ziet er zo beter uit met alleen de unieke waarden, toch?

U hoeft echter niet de piping-methode te gebruiken om de klus te klaren. "uniq" kan ook rechtstreeks aan de bestanden werken.

uniek

Dubbele inhoud verwijderen

Ja, het verwijderen van de dubbele inhoud van de invoer en het behouden van alleen de eerste keer is het standaardgedrag van "uniq". Merk op dat deze dubbele verwijdering alleen plaatsvindt wanneer "uniq" gelijktijdige dubbele items vindt.

Laten we eens kijken naar dit voorbeeld. Ik heb nog een "duplicaat1" gemaakt.txt" bestand dat dubbele items bevat. Ze grenzen echter niet aan elkaar.

vleermuis duplicaat1.tekst

Filter nu deze uitvoer met "uniq".

kat duplicaat1.txt | uniek

Alle dubbele inhoud is aanwezig! Dat is de reden waarom, als u met iets soortgelijks werkt, de inhoud door "sorteren" moet leiden om ervoor te zorgen dat alle inhoud wordt gesorteerd en dat duplicaten aan elkaar grenzen.

kat duplicaat1.txt | soort

Nu zal "uniq" zijn werk normaal doen.

kat duplicaat1.txt | sorteren | uniek

Aantal herhalingen

Als je wilt, kun je controleren hoe vaak een regel in de inhoud wordt herhaald. Gebruik gewoon de vlag "-c" met "uniq".

kat duplicaat.txt | sorteren | uniq -c

Opmerking: "uniq" zal ook zijn normale taak doen om de dubbele te verwijderen.

Dubbele regels afdrukken

Meestal willen we van de duplicaten af, toch?? Deze keer, wat dacht je ervan om gewoon te kijken wat er dubbel is??

Ja, "uniq" kan dat ook. In dit geval moet u de optie "-D" gebruiken. Ik zal tussendoor "sorteren" gebruiken voor een beter, verfijnder resultaat.

kat duplicaat.txt | sorteren | uniq -D

WAUW! Dat zijn VEEL duplicaten! Alle duplicaten zijn echter geclusterd, waardoor het moeilijk is om er doorheen te navigeren. Hoe zit het met het toevoegen van een kleine tussenruimte??

uniq --all-repeated=

Hier zijn 3 verschillende methoden beschikbaar: geen (standaardwaarde), toevoegen en scheiden.

kat duplicaat.txt | sorteren | uniq --all-repeated=prepend

kat duplicaat.txt | sorteren | uniq --all-repeated=apart

Nu ziet het er beter uit.

Uniciteitscontrole overslaan

In veel gevallen moet de uniciteit worden gecontroleerd door een ander deel van de lijn.

Laten we dit door een voorbeeld begrijpen. In het bestand duplicaat1.txt, laten we zeggen dat de duplicatie wordt bepaald door het tweede deel. Hoe vertel je "uniq" om dat te doen?? Over het algemeen controleert het op het eerste veld (standaard). Nou, dat kunnen wij ook doen. Er is deze "-f" vlag om precies het werk te doen.

uniq -f
kat duplicaat1.txt | sorteer -k 2 | uniq -f 1

Als je je afvraagt ​​​​met de vlag "sorteren", is het om "sorteren" te vertellen om te sorteren op basis van de tweede kolom.

Toon alle regels, maar scheid duplicaten

Volgens alle bovengenoemde voorbeelden bewaart "uniq" alleen de eerste keer dat de gedupliceerde inhoud voorkomt en verwijdert de rest. Hoe zit het met het verwijderen van de dubbele inhoud helemaal?? Ja, door de vlag "-u" te gebruiken, kunnen we "uniq" dwingen om alleen de niet-repetitieve regels te behouden.

kat duplicaat.txt | soort

kat duplicaat.txt | sorteren | uniq -u

Hmm, teveel duplicaten zijn nu weg..

Eerste tekens overslaan

We hebben besproken hoe we "uniq" kunnen vertellen om zijn werk voor andere velden te doen, toch?? Het is tijd om de controle te starten na een aantal begintekens. Voor dit doel zal de vlag "-s" vergezeld van het aantal tekens "uniq" vertellen om het werk te doen.

kat duplicaat1.txt | sorteer -k 2 | uniq -s 2

Het is vergelijkbaar met het voorbeeld waarin "uniq" zijn taak alleen in het tweede veld moest doen. Laten we nog een voorbeeld zien met deze truc.

kat duplicaat.txt | sorteren | uniq -s 5

ALLEEN de begintekens controleren

Net zoals we "uniq" vertelden om de eerste paar tekens over te slaan, is het ook mogelijk om "uniq" te vertellen om de controle binnen de eerste paar tekens te beperken. Er is een speciale "-w" vlag voor dit doel.

kat duplicaat.txt | sorteren | uniq -w 5

Deze opdracht vertelt "uniq" om de uniciteitscontrole uit te voeren binnen de eerste 5 tekens.

Laten we nog een voorbeeld van dit commando bekijken.

kat duplicaat1.txt | sorteren | uniq -w 5

Het vernietigt alle andere gevallen van "dubbele" vermeldingen omdat het de uniciteitscontrole op het "dupli" -gedeelte heeft uitgevoerd.

Hoofdletter ongevoeligheid

Bij het controleren op uniciteit controleert "uniq" ook op hoofdletters van de tekens. In sommige situaties maakt hoofdlettergevoeligheid niet uit, dus we kunnen de vlag "-i" gebruiken om "uniq" hoofdletterongevoelig te maken.

Hier presenteer ik u het demobestand.

Een heel slimme duplicatie met een combinatie van hoofdletters en kleine letters, toch? Het is tijd om een ​​beroep te doen op de kracht van "uniq" om de rommel op te ruimen!

kat duplicaat1.txt | sorteren | uniq -i

Wens vervuld!

NULL-beëindigde uitvoer

Het standaardgedrag van "uniq" is om de uitvoer te beëindigen met een nieuwe regel. De uitvoer kan echter ook worden afgesloten met een NULL. Dat is best handig als je het in scripts gaat gebruiken. Hier is de vlag "-z" wat het werk doet.

kat duplicaat.txt | sorteren | uniq -z

Meerdere vlaggen combineren

We leerden een aantal vlaggen van “uniq”, toch? Wat dacht je ervan om ze samen te combineren??

Ik combineer bijvoorbeeld de hoofdlettergevoeligheid en het aantal herhalingen samen.

Als je ooit van plan bent om meerdere vlaggen samen te gebruiken, zorg er dan eerst voor dat ze op de juiste manier samenwerken. Soms werken dingen gewoon niet zoals ze zouden moeten.

Laatste gedachten

"uniq" is een vrij unieke tool die Linux biedt. Met zoveel krachtige functies kan het op talloze manieren nuttig zijn. Voor de lijst van alle vlaggen en hun uitleg, raadpleeg de man en info pagina's van “uniq”.

man uniek

info uniek

Genieten!

Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...
Gratis en open source game-engines voor het ontwikkelen van Linux-games
Dit artikel behandelt een lijst met gratis en open source game-engines die kunnen worden gebruikt voor het ontwikkelen van 2D- en 3D-games op Linux. E...
Shadow of the Tomb Raider voor Linux-zelfstudie
Shadow of the Tomb Raider is de twaalfde toevoeging aan de Tomb Raider-serie - een actie-avonturengame-franchise gemaakt door Eidos Montreal. De game ...