Uniq: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med 'Som standard skriver uniq ut sina inmatningsrader, förutom att den kasserar alla utom den första av intilliggande upprepade rader, så att inga utdatarader upprepas. Alternativt kan den istället kassera rader som inte upprepas, eller alla upprepade rader. Inmatningen behöver inte sorteras, men upprepade inmatningsrader detekteras endast om de ligger intill. Om du vill kassera icke-angränsande dubbletter, kanske du vill använda sort -u. Se sortera: Sortera textfile...')
 
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
Som standard skriver uniq ut sina inmatningsrader, förutom att den kasserar alla utom den första av intilliggande upprepade rader, så att inga utdatarader upprepas. Alternativt kan den istället kassera rader som inte upprepas, eller alla upprepade rader.
== uniq - Rapportera eller ta bort dubbla rader i en fil ==
Kommandot `uniq` används för att rapportera eller ta bort dubbla rader i en sorterad fil i Unix-liknande operativsystem.


Inmatningen behöver inte sorteras, men upprepade inmatningsrader detekteras endast om de ligger intill. Om du vill kassera icke-angränsande dubbletter, kanske du vill använda sort -u. Se sortera: Sortera textfiler.
=== Syntax ===
uniq [ALTERNATIV]... [INPUT-FIL [OUTPUT-FIL]]


Jämförelser respekterar reglerna som specificeras av LC_COLLATE-lokalkategorin.
=== Beskrivning ===
Kommandot `uniq` läser en sorterad fil och tar bort eller rapporterar intilliggande dubbletter av rader. Det är vanligt att använda `uniq` i kombination med `sort`, eftersom `uniq` endast tar bort intilliggande dubbletter.


Om ingen utdatafil anges skriver uniq till standardutdata.
=== Alternativ ===
Kommandot `uniq` stöder flera alternativ som kan användas för att justera dess beteende:


* -c, --count - Prefixera rader med antalet gånger de förekommer.
* -d, --repeated - Visa endast duplicerade rader.
* -D, --all-repeated[=SEPARATOR] - Visa alla duplicerade rader och kan separeras med en tom rad.
* -f, --skip-fields=N - Hoppa över N fält i början av varje rad.
* --group[=SEPARATOR] - Visa unika rader i grupper och kan separeras med en tom rad.
* -i, --ignore-case - Ignorera skiftlägeskänslighet vid jämförelser.
* -s, --skip-chars=N - Hoppa över N tecken i början av varje rad.
* -u, --unique - Visa endast unika rader.
* -z, --zero-terminated - Använd nollterminerade rader istället för newline.
* --help - Visa hjälpmeddelande och avsluta.
* --version - Visa versionsinformation och avsluta.


‘<samp>-f <var>n</var></samp>’
=== Exempel ===
Här är några praktiska exempel som visar hur du kan använda `uniq`-kommandot:


<samp>--skip-fields=<var>n</var></samp>
* För att ta bort dubbletter i en sorterad fil och skriva resultatet till standardutgång:
<code>
sort fil.txt | uniq
</code>


Hoppa över n fält på varje rad innan du kontrollerar om det är unikt. Använd en nollsträng för jämförelse om en linje har färre än n fält. Fält är en sekvens av tomma tecken följt av icke-tomma tecken. Fältnummer är ett baserade, det vill säga -f 1 hoppar över det första fältet (som eventuellt kan ha inledande blanksteg).
* För att visa antalet gånger varje rad förekommer i filen:
<code>
sort fil.txt | uniq -c
</code>


För kompatibilitet stöder uniq en traditionell alternativsyntax -n. Nya skript bör använda -f n istället.
* För att visa endast duplicerade rader:
<code>
sort fil.txt | uniq -d
</code>


* För att visa endast unika rader:
<code>
sort fil.txt | uniq -u
</code>


'-c' ¶
* För att ignorera skiftlägeskänslighet vid jämförelser:
<code>
sort fil.txt | uniq -i
</code>


'--count'
* För att hoppa över de första två fälten vid jämförelser:
<code>
sort fil.txt | uniq -f 2
</code>


Skriv ut antalet gånger varje rad förekom tillsammans med raden.
=== Skillnader mellan macOS och Linux ===
Det finns några viktiga skillnader att tänka på när man använder `uniq`-kommandot på macOS jämfört med Linux:


* Tillgänglighet: `uniq` är tillgängligt både på macOS och Linux, och de flesta alternativ fungerar likadant på båda plattformarna.
* Alternativ: Vissa alternativ som finns på GNU-versionen av `uniq` kan saknas eller ha annorlunda beteende på macOS. Det är bra att konsultera `man`-sidan på din specifika plattform.
* Textkodning: Hanteringen av textkodningar och regionala inställningar kan skilja sig något mellan macOS och Linux, vilket kan påverka hur rader jämförs.


''<nowiki/>'-d'''
Exempel på att använda `uniq` på macOS:
* För att ta bort dubbletter i en sorterad fil och skriva resultatet till standardutgång:
<code>
sort fil.txt | uniq
</code>


''"--repeated"''
* För att visa antalet gånger varje rad förekommer i filen:
<code>
sort fil.txt | uniq -c
</code>


Släng rader som inte upprepas. När det används ensamt gör det att uniq skriver ut den första kopian av varje upprepad rad, och inget annat.
Det är alltid bra att konsultera `man`-sidan för `uniq` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.


; ''‘<samp>-D</samp>’''
=== Felsökning ===
; ''‘<samp>--all-repeated[=<var>delimit-method</var>]</samp>’''
Om du får ett felmeddelande när du använder `uniq`, kontrollera följande:


Kasta inte den andra och efterföljande upprepade inmatningsraderna, utan kassera rader som inte upprepas. Det här alternativet är användbart främst i kombination med andra alternativ, t.ex. att ignorera skiftläge eller för att endast jämföra valda fält. Den valfria avgränsningsmetoden, som stöds av alternativet långa formulär, anger hur grupper av upprepade rader ska avgränsas och måste vara något av följande:
* Att du använder rätt syntax och alternativ för ditt specifika kommando.
* Att filerna du försöker bearbeta faktiskt existerar och är läsbara.
* Att input-filen är sorterad om du försöker ta bort dubbletter.


; ‘none’
=== Se även ===
; Avgränsa inte grupper av upprepade rader. Detta motsvarar --all-repeated (-D).
* [[sort]] - Sortera rader av textfiler.
* [[grep]] - Sök efter mönster i filer.
* [[awk]] - Ett språk och verktyg för textbehandling.
* [[sed]] - En strömaditor för textmanipulering.
 
=== Källor ===
* [https://www.gnu.org/software/coreutils/manual/html_node/uniq-invocation.html GNU coreutils manual - uniq]
* [https://man7.org/linux/man-pages/man1/uniq.1.html uniq manual (Linux)]
* [https://ss64.com/osx/uniq.html uniq manual (macOS)]
 
[[Kategori:Linuxkommandon]]

Nuvarande version från 27 maj 2024 kl. 15.32

uniq - Rapportera eller ta bort dubbla rader i en fil

Kommandot `uniq` används för att rapportera eller ta bort dubbla rader i en sorterad fil i Unix-liknande operativsystem.

Syntax

uniq [ALTERNATIV]... [INPUT-FIL [OUTPUT-FIL]]

Beskrivning

Kommandot `uniq` läser en sorterad fil och tar bort eller rapporterar intilliggande dubbletter av rader. Det är vanligt att använda `uniq` i kombination med `sort`, eftersom `uniq` endast tar bort intilliggande dubbletter.

Alternativ

Kommandot `uniq` stöder flera alternativ som kan användas för att justera dess beteende:

  • -c, --count - Prefixera rader med antalet gånger de förekommer.
  • -d, --repeated - Visa endast duplicerade rader.
  • -D, --all-repeated[=SEPARATOR] - Visa alla duplicerade rader och kan separeras med en tom rad.
  • -f, --skip-fields=N - Hoppa över N fält i början av varje rad.
  • --group[=SEPARATOR] - Visa unika rader i grupper och kan separeras med en tom rad.
  • -i, --ignore-case - Ignorera skiftlägeskänslighet vid jämförelser.
  • -s, --skip-chars=N - Hoppa över N tecken i början av varje rad.
  • -u, --unique - Visa endast unika rader.
  • -z, --zero-terminated - Använd nollterminerade rader istället för newline.
  • --help - Visa hjälpmeddelande och avsluta.
  • --version - Visa versionsinformation och avsluta.

Exempel

Här är några praktiska exempel som visar hur du kan använda `uniq`-kommandot:

  • För att ta bort dubbletter i en sorterad fil och skriva resultatet till standardutgång:

sort fil.txt | uniq

  • För att visa antalet gånger varje rad förekommer i filen:

sort fil.txt | uniq -c

  • För att visa endast duplicerade rader:

sort fil.txt | uniq -d

  • För att visa endast unika rader:

sort fil.txt | uniq -u

  • För att ignorera skiftlägeskänslighet vid jämförelser:

sort fil.txt | uniq -i

  • För att hoppa över de första två fälten vid jämförelser:

sort fil.txt | uniq -f 2

Skillnader mellan macOS och Linux

Det finns några viktiga skillnader att tänka på när man använder `uniq`-kommandot på macOS jämfört med Linux:

  • Tillgänglighet: `uniq` är tillgängligt både på macOS och Linux, och de flesta alternativ fungerar likadant på båda plattformarna.
  • Alternativ: Vissa alternativ som finns på GNU-versionen av `uniq` kan saknas eller ha annorlunda beteende på macOS. Det är bra att konsultera `man`-sidan på din specifika plattform.
  • Textkodning: Hanteringen av textkodningar och regionala inställningar kan skilja sig något mellan macOS och Linux, vilket kan påverka hur rader jämförs.

Exempel på att använda `uniq` på macOS:

  • För att ta bort dubbletter i en sorterad fil och skriva resultatet till standardutgång:

sort fil.txt | uniq

  • För att visa antalet gånger varje rad förekommer i filen:

sort fil.txt | uniq -c

Det är alltid bra att konsultera `man`-sidan för `uniq` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.

Felsökning

Om du får ett felmeddelande när du använder `uniq`, kontrollera följande:

  • Att du använder rätt syntax och alternativ för ditt specifika kommando.
  • Att filerna du försöker bearbeta faktiskt existerar och är läsbara.
  • Att input-filen är sorterad om du försöker ta bort dubbletter.

Se även

  • sort - Sortera rader av textfiler.
  • grep - Sök efter mönster i filer.
  • awk - Ett språk och verktyg för textbehandling.
  • sed - En strömaditor för textmanipulering.

Källor