exemepl på uniq
Här är en mer **utförlig och artikel-liknande MediaWiki-text** med ingress, förklaringar och resonemang – i samma stil som dina andra artiklar:
---
Praktisk användning av uniq i Linux
Ingress
Kommandot uniq(1) är ett klassiskt Unix-verktyg för att identifiera, filtrera och analysera upprepade rader i textdata. Det används ofta i kombination med andra verktyg som sort(1) och grep(1), och är särskilt användbart vid logganalys, datarensning och rapportgenerering.
Denna artikel visar praktiska och verklighetsnära exempel på hur uniq(1) används i olika situationer.
Hur uniq fungerar
Till skillnad från vad många tror tar uniq(1) inte bort alla dubbletter i en fil automatiskt. Det fungerar endast på **intilliggande rader**.
Det innebär att följande data:
äpple banan äpple
inte kommer att filtreras korrekt med enbart:
uniq fil.txt
För att lösa detta används nästan alltid sort(1) innan:
sort fil.txt | uniq
Vanligaste användningsmönstret
Den vanligaste konstruktionen är:
sort fil.txt | uniq
Detta:
- sorterar raderna
- grupperar identiska rader tillsammans
- filtrerar bort dubbletter
Räkna förekomster (statistik)
För att analysera hur ofta något förekommer används flaggan -c:
sort fil.txt | uniq -c
Exempelutdata:
3 äpple 1 banan 5 päron
Detta är mycket användbart för:
- logganalys
- frekvensanalys
- statistik över textdata
Identifiera dubbletter
Vill man endast se vilka rader som förekommer flera gånger:
sort fil.txt | uniq -d
Detta används ofta för att:
- hitta dubletter i databasutdrag
- upptäcka redundans i listor
Hitta unika värden
För att visa endast rader som förekommer exakt en gång:
sort fil.txt | uniq -u
Detta är användbart när man vill:
- hitta avvikelser
- identifiera unika poster i dataset
Ignorera skillnader i versaler
Textdata kan ofta innehålla variationer i stora och små bokstäver. Med -i ignoreras detta:
sort fil.txt | uniq -i
Exempel:
Hej hej HEJ
behandlas som samma rad.
Arbeta med delar av rader
I många fall består rader av flera fält, exempelvis loggar eller CSV-data.
Hoppa över fält
uniq -f 1 fil.txt
Ignorerar det första fältet (t.ex. tidsstämpel).
Hoppa över tecken
uniq -s 5 fil.txt
Ignorerar de första 5 tecknen.
Begränsa jämförelse
uniq -w 10 fil.txt
Jämför endast de första 10 tecknen.
Praktiskt exempel: logganalys
Ett vanligt scenario är att analysera fel i loggfiler:
grep "ERROR" system.log | sort | uniq -c
Detta ger:
- en lista över unika fel
- antal gånger varje fel inträffat
Det gör det lätt att:
- prioritera problem
- identifiera återkommande fel
Praktiskt exempel: IP-adresser
Räkna antal unika IP-adresser i en webbserverlogg:
cut -d' ' -f1 access.log | sort | uniq -c
Här används även cut(1) för att extrahera IP-adresser.
Alternativ metod
I vissa fall kan sort(1) ersätta uniq(1) helt:
sort -u fil.txt
Detta:
- sorterar
- tar bort dubbletter direkt
Dock saknar det funktioner som:
- räkning (-c)
- visning av endast dubbletter (-d)
När ska man använda uniq?
uniq(1) är särskilt användbart när man behöver:
- analysera frekvens av data
- hitta dubbletter eller unika poster
- bearbeta stora textmängder snabbt
- kombinera med andra Unix-verktyg i pipelines
Sammanfattning
uniq(1) är ett enkelt men kraftfullt verktyg i Unix-filosofin: att göra en sak och göra den bra. Tillsammans med verktyg som sort(1), grep(1) och cut(1) blir det en central komponent i textbearbetning och systemadministration.