Exempel på uniq

Från Wiki.linux.se -Linux wikipedia på Svenska.
Version från den 28 mars 2026 kl. 06.37 av Admin (diskussion | bidrag) (Skapade sidan med '= 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 funge...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

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.

SE ÄVEN

uniq(1), sort(1), grep(1), cut(1), comm(1)

Sidslut

Det här är AI-genererat innehåll.

Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontakta-linux-se/

Tack till Datorhjälp i Stockholm AB som har sponsrat Linux.se med webbhotell.