Het Gebruik van de uniq Opdracht op Linux

Fatmawati Achmad Zaenuri/Shutterstock

De Linux uniq opdracht zwepen door uw tekst bestanden die op zoek zijn naar unieke of dubbele lijnen. In deze handleiding bespreken we de veelzijdigheid en mogelijkheden, evenals hoe u het beste kunt maken van deze handige utility.

Het vinden van Bijpassende Lijnen van de Tekst op Linux

De uniq opdracht is snel, flexibel en goed in wat het doet. Echter, net als veel Linux-commando ‘ s, het heeft een paar eigenaardigheden—dat is prima, zolang je weet over hen. Als je de sprong te wagen, zonder een beetje insider know-how, je kon goed worden overgelaten je hoofd krabben op de resultaten. We zullen deze eigenaardigheden als we gaan.

De uniq opdracht is perfect voor degenen die in de single-minded, ontworpen-om-te-doen-een-ding-en-doen-het-goed kamp. Daarom is het ook bijzonder goed geschikt om te werken met pijpen en speelt zijn deel in opdracht van de pijpleidingen. Een van de meest voorkomende medewerkers is sorteren omdat uniq heeft zijn gesorteerd ingang op te werken.

Laat de fire it up!

GERELATEERD: Hoe te Gebruiken aanbrengen op Linux

Uitvoeren van uniq met Geen Opties

We hebben een tekst-bestand bevat de teksten van Robert Johnson ‘ s song ik Geloof dat ik Dust My Broom. Laten we eens kijken wat uniq maakt.

Typ het volgende om de output met een pijp in minder:

uniq dust-my-broom.txt | minder

We krijgen de hele song, met inbegrip van dubbele lijnen, in minder:

Dat lijkt niet de unieke regels, noch de dubbele lijnen.

Recht—want dit is de eerste eigenaardigheid. Als u uniq met geen opties, gedraagt het zich alsof gebruikt u de-u (unieke lijnen) optie. Dit vertelt uniq voor het afdrukken van alleen de unieke lijnen van het bestand. De reden ziet u dubbele lijnen is omdat, voor uniq rekening te houden met een lijn met een dubbele, het moet naast het duplicaat, dat is waar de soort komt voor in.

Wanneer we sorteren het bestand, deze groepen de dubbele lijnen, en uniq behandelt ze als duplicaten. We zullen sorteren op het bestand, pijp de gesorteerde uitgang in uniq, en dan is de pijp van de uiteindelijke output in minder.

Om dit te doen, typt u het volgende:

soort dust-my-broom.txt | uniq | minder

Een gesorteerde lijst van de lijnen verschijnt in minder.

De lijn, “ik geloof dat ik dust my broom,” zeker verschijnt in het nummer meer dan één keer. Het is In feite tweemaal herhaald in de eerste vier regels van het lied.

Dus, waarom is het dan weergegeven in een lijst van unieke lijnen? Omdat de eerste keer verschijnt er een lijn in het bestand, het is uniek; alleen de volgende vermeldingen duplicaten zijn. Je kunt het zien als een opsomming van de eerste verschijning van elke unieke lijn.

Laten we gebruik maken van soort weer en omleiden naar een nieuw bestand. Op deze manier hoeven we niet te sorteren in elke opdracht.

We typt u de volgende opdracht:

soort dust-my-broom.txt > sorted.txt

Nu, we hebben een presorted bestand om mee te werken.

Het Tellen Van Duplicaten

U kunt gebruik maken van de -c (tellen) optie voor het afdrukken van het aantal keren dat elke regel wordt weergegeven in een bestand.

Typ de volgende opdracht:

uniq -c sorted.txt | minder

Elke regel begint met het aantal keer dat de lijn wordt weergegeven in het bestand. Echter, zult u merken dat de eerste regel leeg is. Dit vertelt je dat er zijn vijf lege regels in het bestand.

Als u wilt dat de uitvoer sorteren in numerieke volgorde, kunt u de invoer de uitvoer van uniq soort. In ons voorbeeld gebruiken we de -r (reverse) en -n (numeriek sorteren) opties, en de pijp van de resultaten in minder.

We typt u het volgende:

uniq -c sorted.txt | sort-rn | minder

De lijst wordt gesorteerd in aflopende volgorde op basis van de frequentie van elke lijn van de verschijning.

Met Alleen Dubbele Lijnen

Als u wilt zien alleen de lijnen die worden herhaald in een bestand, kunt u gebruik maken van de -d (herhaald) optie. Maakt niet uit hoe vaak een regel wordt gekopieerd in een bestand, wordt vermeld maar een keer.

Deze optie wilt gebruiken, typt u het volgende:

uniq -d sorted.txt

De dubbele lijnen worden weergegeven voor ons. U zult merken dat er een lege regel aan de bovenkant, wat betekent dat het bestand bevat dubbele lege regels—het is niet een ruimte verlaten door uniq met cosmetisch compensatie van de lijst.

Kunnen We ook combineren met de-d (herhaald) en c (tellen) opties en de output met een pijp door middel van sorteren. Dit geeft ons een gesorteerde lijst van de lijnen die verschijnen ten minste twee keer.

Typ het volgende in om deze optie te gebruiken:

uniq -d -c sorted.txt | sort-rn

Een Lijst Van Alle Dubbele Regels

Als u wilt om een lijst van alle dubbele lijn, evenals een vermelding voor elke keer dat een regel wordt weergegeven in het bestand, kunt u gebruik maken van de -D (alle dubbele lijnen) optie.

Deze optie wilt gebruiken, typt u het volgende:

uniq -D sorted.txt | minder

De lijst bevat een vermelding voor elke dubbele lijn.

Als je de –optie groep, wordt elke dubbele lijn met een lege regel voor (vooraan) of na elke groep (toevoegen), of zowel voor als na de (beide) elke groep.

We gebruiken toevoegen als onze modifier, dus typen we het volgende:

uniq –groep=append sorted.txt | minder

De groepen worden gescheiden door lege regels om het makkelijker te maken om te lezen.

Het controleren van een Bepaald Aantal Tekens

Standaard uniq controleert de gehele lengte van elke regel. Als u niet wilt dat de controles een bepaald aantal tekens, echter, kunt u gebruik maken van de -w (check chars) optie.

In dit voorbeeld, herhalen we de laatste opdracht, maar beperken de vergelijkingen met de eerste drie tekens. Om dit te doen, typt u de volgende opdracht:

uniq -w 3 –groep=append sorted.txt | minder

De resultaten en groeperingen die we krijgen zijn heel verschillend.

Alle lijnen die beginnen met “I b” zijn gegroepeerd omdat deze delen van de lijnen identiek zijn, zodat je ze beschouwd als duplicaten.

Ook worden alle regels die beginnen met “ik ben” worden behandeld als duplicaten, zelfs als de rest van de tekst is anders.

Het negeren van een Bepaald Aantal Tekens

Er zijn enkele gevallen waarin het zou gunstig kunnen zijn voor het overslaan van een bepaald aantal tekens aan het begin van elke regel, zoals wanneer de regels in een bestand zijn genummerd. Of zeggen dat je moet uniq te springen over een tijdstempel en beginnen met het controleren van de regels van karakter zes in plaats van uit het eerste teken.

Hieronder is een versie van onze gesorteerd bestand met genummerde regels.

Als we willen uniq te starten met de vergelijking controleert op teken van drie, kunnen we gebruik maken van de -s (skip chars) optie door het volgende te typen:

uniq -s 3 -d -c numbered.txt

De lijnen zijn gedetecteerd als duplicaten en correct geteld. Let op de lijn nummers die worden weergegeven, zijn van het eerste exemplaar van elk duplicaat.

U kunt ook velden overslaan (een serie van tekens en enkele witte ruimte) in plaats van tekens. We zullen gebruik maken van de -f (velden) optie om te vertellen uniq die velden te negeren.

Wij typ het volgende te vertellen uniq om te negeren van het eerste veld:

uniq -c 1 -d -c numbered.txt

We krijgen dezelfde resultaten die we deden toen we vertelde uniq overslaan drie tekens aan het begin van elke regel.

Het Negeren Van Het Geval

Standaard uniq is hoofdlettergevoelig. Als dezelfde letter verschijnt bedekte en in kleine letters, uniq is van mening dat de regels anders.

Bijvoorbeeld, check out de uitvoer van het volgende commando:

uniq -d -c sorted.txt | sort-rn

De lijnen “ik Geloof dat ik dust my broom” en “ik geloof dat ik dust my broom” niet worden behandeld als duplicaten als gevolg van het verschil in het geval op de “B” in “geloven”.

Als we de -i (hoofdlettergevoelig) optie, hoewel, deze lijnen zullen worden behandeld als duplicaten. We typt u het volgende:

uniq -d -c -i sorted.txt | sort-rn

De lijnen zijn nu behandeld als duplicaten en gegroepeerd.

Linux stelt een veelheid van speciale hulpprogramma ‘ s tot uw beschikking. Zoals velen van hen, uniq is niet een apparaat dat u elke dag zult gaan gebruiken.

Dat is de reden waarom een groot deel van de draaischijf in Linux is onthouden welke tool zal het oplossen van uw probleem, en waar je het kunt vinden. Als u de praktijk, hoewel, je zult goed op uw manier.

Of, je kunt altijd gewoon zoeken How-To Geek—we hebben waarschijnlijk een artikel op.

LEES VERDER

  • “Hoe om te Beslissen Welke Nintendo-Schakelaar Is voor U
  • “Wat Is Bluetooth-LE-Audio, en Waarom moet Je dat Willen?
  • “Hoe Zien Die Instagram Accounts die U Nooit Interactie Met
  • “Het Uitschakelen van Netflix’ s Auto-Playing Previews
  • “Hoe je Je iPhone Kan Binnenkort Vervanging van Uw autosleutels

Posted

in

by

Tags: