Linux-kommandon

Linux uniq-kommando

Linux uniq-kommando
Vad är “uniq”? Det är ett utmärkt kommandoradsverktyg som rapporterar eller utelämnar duplikat i den angivna ingången. Det är en del av GNU-kärnan och så finns det på varje UNIX / Linux-system där ute. Låt oss komma igång med “uniq”!

Uniq-användning

Så här ser basstrukturen för "uniq" -kommandon ut.

uniq

Låt oss till exempel kolla in innehållet i ”duplicera.Text". Naturligtvis innehåller den mycket duplicerat textinnehåll i den här artikeln.

kattdublik.txt | sortera

Det finns tydligt duplicerat innehåll, eller hur? Låt oss filtrera dem genom "uniq".

kattdublik | sortera | uniq

Resultatet ser så bättre ut med bara de unika värdena, eller hur?

Men du behöver bara inte använda piping-metoden för att göra jobbet. “Uniq” kan också fungera direkt på filerna.

uniq

Ta bort duplicerat innehåll

Ja, att radera det dubbla innehållet från ingången och behålla den första förekomsten är standardbeteendet för "uniq". Observera att denna dubbla radering bara sker när "uniq" hittar samtidiga dubbletter.

Låt oss kolla in det här exemplet. Jag har skapat en annan “duplikat1.txt-fil som innehåller dubbletter. Men de ligger inte intill varandra.

bat duplikat1.Text

Filtrera nu denna utgång med "uniq".

katt duplikat1.txt | uniq

Allt duplicerat innehåll finns där! Det är därför om du arbetar med något liknande det här, rör innehållet genom att "sortera" för att se till att allt innehåll sorteras och att dubbletter är intill varandra.

katt duplikat1.txt | sortera

Nu kommer "uniq" att göra sitt jobb normalt.

katt duplikat1.txt | sortera | uniq

Antal repetitioner

Om du vill kan du kolla hur många gånger en rad upprepas i innehållet. Använd bara "-c" -flaggan med "uniq".

kattdublik.txt | sortera | uniq -c

Obs: "uniq" kommer också att göra sitt vanliga jobb med att radera de dubbletterna.

Skriva ut dubbla rader

För det mesta vill vi bli av med dubbletterna, eller hur? Den här gången, vad sägs om att bara kolla in vad som är duplikat?

Ja, "uniq" kan också göra det. I det här fallet måste du använda alternativet “-D”. Jag kommer att använda "sortera" emellan för att få ett bättre, mer förfinat resultat.

kattdublik.txt | sortera | uniq -D

WOW! Det är en hel del dubbletter! Alla dubbletter är dock grupperade ihop, vilket gör det svårt att navigera igenom. Vad sägs om att lägga till ett litet mellanrum?

uniq - allt upprepas =

Här finns tre olika metoder tillgängliga: ingen (standardvärde), förberoende och separat.

kattdublik.txt | sortera | uniq - allt-upprepat = beror på

kattdublik.txt | sortera | uniq - allt upprepas = separera

Nu ser det bättre ut.

Hoppar över unikhetskontroll

I många fall måste unikheten kontrolleras av en annan del av linjen.

Låt oss förstå detta med exempel. I fil duplikat1.txt, låt oss säga att duplicering bestäms av andra delen. Hur säger du till "uniq" att göra det? I allmänhet söker det efter det första fältet (som standard). Vi kan också göra det också. Det finns den här "-f" -flaggan för att bara göra jobbet.

uniq -f
katt duplikat1.txt | sortera -k 2 | uniq -f 1

Om du undrar med "sortera" -flaggan är det att säga till "sortera" att sortera baserat på den andra kolumnen.

Visa alla rader men separata dubbletter

Enligt alla exemplen som nämns ovan håller "uniq" bara den första förekomsten av det duplicerade innehållet och tar bort resten. Vad sägs om att ta bort det dubbla innehållet helt och hållet? Ja, med flaggan "-u" kan vi tvinga "uniq" att bara hålla de icke-repetitiva linjerna.

kattdublik.txt | sortera

kattdublik.txt | sortera | uniq -u

Hmm, för många dubbletter är nu borta ..

Hoppa över inledande tecken

Vi diskuterade hur man säger "uniq" att göra sitt jobb för andra områden, eller hur? Det är dags att starta kontrollen efter ett antal initialtecken. För detta ändamål kommer "-s" -flaggan tillsammans med antalet tecken att säga "uniq" att göra jobbet.

katt duplikat1.txt | sortera -k 2 | uniq -s 2

Det liknar exemplet där “uniq” bara skulle göra sin uppgift i det andra fältet. Låt oss se ett annat exempel med detta trick.

kattdublik.txt | sortera | uniq -s 5

Kontrollera ENDAST initialtecken

Precis som det sätt vi sa till "uniq" att hoppa över första partecken, är det också möjligt att säga till "uniq" att bara begränsa kontrollen inom de första partecknen. Det finns en dedikerad “-w” -flagga för detta ändamål.

kattdublik.txt | sortera | uniq -w 5

Detta kommando säger att "uniq" ska utföra unikhetskontroll inom de fem första tecknen.

Låt oss se ett annat exempel på detta kommando.

katt duplikat1.txt | sortera | uniq -w 5

Det utplånar alla andra instanser av "duplicera" poster eftersom det gjorde unikt kontroll på "dupli" del.

Fallkänslighet

När du kontrollerar om det är unikt, kontrollerar "uniq" även om det finns tecken på fallet. I vissa situationer spelar inte skiftlägeskänslighet någon roll, så vi kan använda flaggan "-i" för att göra "uniq" skiftlägeskänslig.

Här presenterar jag dig demo-filen.

Något riktigt smart duplicering med en blandning av stora och små bokstäver, eller hur? Det är dags att påkalla styrkan i "uniq" för att rensa röran!

katt duplikat1.txt | sortera | uniq -i

Önskan beviljad!

NULL-avslutad produktion

Standardbeteendet för "uniq" är att avsluta utdata med en ny linje. Emellertid kan produktionen också avslutas med en NULL. Det är ganska användbart om du ska använda det i skript. Här är flaggan “-z” vad som gör jobbet.

kattdublik.txt | sortera | uniq -z

Kombinera flera flaggor

Vi lärde oss ett antal flaggor av "uniq", höger? Vad sägs om att kombinera dem tillsammans?

Jag kombinerar till exempel fallkänsligheten och antalet repetitioner tillsammans.

Om du någonsin planerar att blanda flera flaggor tillsammans, se till att de fungerar på rätt sätt tillsammans. Ibland fungerar saker inte som de borde.

Slutgiltiga tankar

“Uniq” är ett helt unikt verktyg som Linux erbjuder. Med så mycket kraftfulla funktioner kan det vara användbart på många sätt. För en lista över alla flaggor och deras förklaringar, se man- och infosidorna för “uniq”.

man uniq

info uniq

Njut av!

Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...
Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...