cut(1p)

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

NAMN

cut – klipper ut valda fält från varje rad i en fil

SYNOPSIS

cut -b lista [-n] [fil...] cut -c lista [fil...] cut -f lista [-d avgr ] [-s] [fil...]

BESKRIVNING

Verktyget cut ska klippa ut byte (flagga -b), tecken (flagga -c) eller teckenavgränsade fält (flagga -f) från varje rad i en eller flera filer, sammanfoga dem och skriva ut resultatet till standard ut.

FLAGGOR

cut ska följa riktlinjerna i POSIX.1-2017, Avsnitt 12.2, Utility Syntax Guidelines.

Argumentet lista till flaggorna -b, -c och -f ska vara en kommaseparerad eller blankstegsseparerad lista av positiva tal och intervall. Exempel:

  • låg-hög — alla positioner från låg till hög
  • -hög — från 1 till hög
  • låg- — från låg till sista positionen

Element får upprepas och förekomma i valfri ordning, men output följer ordningen i indata. Dubbletter skrivs bara en gång.

Följande flaggor stöds:

-b lista  Klipp baserat på bytepositioner. Varje vald byte skrivs ut, om inte -n är angiven. Det är inte ett fel att ange byte utanför radens längd.

-c lista  Klipp baserat på tecken. Varje valt tecken skrivs ut. Det är inte ett fel att ange tecken som inte finns i raden.

-d avgr  Ange avgränsartecken för fält (standard är tabbtecken).

-f lista  Klipp baserat på fält separerade av avgränsartecken (se -d). Valda fält skrivs ut, åtskilda av ett avgränsartecken. Rader utan avgränsare skrivs som de är, om inte -s anges. Det är inte ett fel att välja fält som inte finns i raden.

-n  Dela inte upp tecken. Används med -b för att justera gränser till hela tecken i multibyte-sammanhang. Detaljerad algoritm beskrivs i originalmanualen.

-s  Undertryck rader utan avgränsartecken (används med -f).

OPERANDER

fil  Sökväg till en indatafil. Om ingen fil anges, eller om fil är '-', används standard in.

STDIN

Standard in används endast om inga filer anges eller om en fil är '-'. Se avsnittet INDATAFILER.

INDATAFILER

Indatafiler ska vara textfiler, men radernas längd får vara obegränsad.

MILJÖVARIABLER

Följande miljövariabler påverkar körningen:

LANG  Anger standardvärden för internationalisering.

LC_ALL  Åsidosätter alla andra internationaliseringsvariabler.

LC_CTYPE  Styr tolkning av tecken (t.ex. multibyte).

LC_MESSAGES  Styr språk i felmeddelanden.

NLSPATH  Anger var meddelandekataloger finns för LC_MESSAGES.

ASYNKRONA HÄNDELSER

Standard.

STDOUT

cut skriver ut sammanfogade byte, tecken eller fält i följande format:

"%s\n", <sammanfogade delar>

STDERR

Standardfel används endast för felmeddelanden.

UTDATAFILER

Inga.

UTFÖRLIG BESKRIVNING

Ingen.

AVSLUTNINGSSTATUS

0 – Alla indatafiler kunde behandlas >0 – Ett fel uppstod

KONSEKVENSER AV FEL

Standard. Följande avsnitt är informativa.

TILLÄMPNINGSTIPS

  • cut och fold kan användas för att dela filer med långa rader till textfiler.
  • -n med -b möjliggör klippning på byte justerade till teckengränser. Exempel:

cut -b 1-500 -n fil > fil1 cut -b 501- -n fil > fil2

Ger exakt alla tecken i ursprungsfilen, uppdelade mellan fil1 och fil2 (båda behåller radbrytningar).

EXEMPEL

1,4,7 # första, fjärde och sjunde 1-3,8 # samma som 1,2,3,8 -5,10 # samma som 1–5,10 3- # från tredje till sista

Kommando:

cut -d : -f 1,6 /etc/passwd

Ger rader i format:

användarnamn:hemdatakatalog

cut -b 1-500 -n fil > fil1 cut -b 501- -n fil > fil2 paste -d "\0" fil1 fil2 > fil

PRINCIPER

  • Historiska implementationer behandlade ibland inte backspace rätt i -c.
  • POSIX förbjuder att avsluta om en fil saknas – istället sätts bara felstatus.
  • cut sorterar aldrig om data baserat på listans ordning – exempel:

echo abcdefghi | cut -c6,2,4-7,1

Ger: `abdefg`

Ett förslag att införa -o (för att behålla listans ordning) avslogs.

FRAMTIDA ÄNDRINGAR

Inga planerade.

SE ÄVEN

fold(1p),

grep(1p)

paste(1p)

POSIX.1-2017, Kapitel 8 (Miljövariabler), Avsnitt 12.2 (Syntax för verktyg)

COPYRIGHT

Delar av denna text är återgivna från IEEE Std 1003.1-2017 och The Open Group Base Specifications Issue 7, 2018 Edition. Ursprunglig standard: http://www.opengroup.org/unix/online.html Typografiska fel i denna återgivning kan ha införts under konverteringen. Rapportera fel till: https://www.kernel.org/doc/man-pages/reporting_bugs.html


Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/cut.1p.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Bromma som har sponsrat Linux.se med webbhotell.