Příkaz cut v linuxu je příkaz pro vyříznutí částí z každého řádku souborů a zapsání výsledku na standardní výstup. Lze jej použít k vyříznutí částí řádku podle pozice bajtu, znaku a pole. Příkaz vyjmout rozřízne řádek a extrahuje text. Volbu je nutné zadat pomocí příkazu, jinak dojde k chybě. Pokud je zadán více než jeden název souboru, pak před daty z každého souboru není uveden jeho název.
Obsah
- Syntaxe příkazu cut
- Možnosti dostupné v příkazu cut
- Praktické ukázky cut Command
- Extrahujte konkrétní bajty (-b) pomocí příkazu cut
- Vyjmout podle znaku (-c) Pomocí příkazu vyjmout
- Řez podle pole (-f) Pomocí příkazu řez
- Výstup komplementu (–komplement) Použití příkazu cut
- Oddělovač výstupu (–output-delimiter) Použití příkazu cut
- Zobrazení verze (–version) Použití příkazu cut
- Jak používat ocas s trubkami(|) v příkazu cut
- Často kladené otázky o příkazu cut v Linuxu – FAQ
Syntaxe příkazu cut
Základní syntaxecut>příkaz je:
cut OPTION... [FILE]...>
Kde
`OPTION`> specifikuje požadované chování
` FILE> `>představuje vstupní soubor.
Poznámka : PokudFILE>není specifikováno, ` cut`> čte ze standardního vstupu (stdin).
Možnosti dostupné v příkazu cut
Zde je seznam nejčastěji používaných možností s ` cut`> příkaz:
| Volba | Popis |
|---|---|
| -b, –bytes=SEZNAM | Vybere pouze bajty zadané v |
| -c, –znaky=SEZNAM | Vybere pouze znaky uvedené v |
| -d, –delimiter=DĚLIT | Použití |
| -f, –fields=LIS | Vybere pouze pole specifikovaná v |
| -n | Nerozdělujte vícebajtové znaky (bez účinku, pokud |
| -doplněk | Invertujte výběr polí/znaků. Vytiskněte pole/znaky, které nejsou vybrány. |
Praktické ukázky cut Command
Uvažujme dva soubory s názvem state.txt a capital.txt obsahuje 5 názvů indických států a hlavních měst.
$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>
Bez zadané možnosti zobrazí chybu.
$ cut state.txt cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>
Extrahovat konkrétní bajty (-b>) Pomocí příkazu cut
-b(bajt): Chcete-li extrahovat konkrétní bajty, musíte použít volbu -b se seznamem čísel bajtů oddělených čárkou. Rozsah bajtů lze také zadat pomocí pomlčky (-). Je nutné zadat seznam čísel bajtů, jinak to způsobí chybu.
Tabulátory a zpětné mezery jsou považovány za znak o velikosti 1 bajtu.
Seznam bez rozsahů :
cut -b 1,2,3 state.txt>

seznam bez rozsahu
Seznam s rozsahy:
cut -b 1-3,5-7 state.txt>

seznam s rozsahem
Používá speciální formulář pro výběr bajtů od začátku do konce řádku:
Speciální formulář: Výběr bajtů od začátku do konce řádku
V tomto případě 1- označuje od 1. bajtu po koncový bajt řádku
cut -b 1- state.txt>

speciální formulář s volbou -b
V tomto případě -3 označuje od 1. do 3. bajtu řádku
cut -b -3 state.txt>

speciální forma -b volba
Vyjmout podle znaků (-c>) Pomocí příkazu cut
-c (sloupec): Chcete-li ořezat podle znaků, použijte volbu -c. Tím se vyberou znaky dané volbě -c. Může to být seznam čísel oddělených čárkou nebo rozsah čísel oddělených pomlčkou (-).
Tabulátory a zpětné mezery jsou považovány za postavu. Je nutné zadat seznam čísel znaků, jinak u této volby způsobí chybu.
Syntax:
cut -c [(k)-(n)/(k),(n)/(n)] filename>
Tady, k označuje výchozí pozici postavy a n označuje koncovou pozici znaku v každém řádku, pokud k a n jsou odděleny - jinak jsou to pouze pozice znaku v každém řádku ze souboru brané jako vstup.
Extrahujte konkrétní znaky:
cut -c 2,5,7 state.txt>

Extrahujte konkrétní znaky
Výše uvedený příkaz cut vytiskne druhý, pátý a sedmý znak z každého řádku souboru.
Extrahujte prvních sedm znaků:
cut -c 1-7 state.txt>

Extrahujte prvních sedm znaků
Výše uvedený příkaz cut vytiskne prvních sedm znaků každého řádku ze souboru. Vyjmout používá speciální formulář pro výběr znaků od začátku do konce řádku:
Speciální formulář: Výběr znaků od začátku do konce řádku
cut -c 1- state.txt>

výběr znaků od začátku do konce řádku pomocí volby -c
Výše uvedený příkaz tiskne od prvního znaku do konce. Zde je v příkazu specifikována pouze počáteční pozice a koncová pozice je vynechána.
cut -c -5 state.txt>

výběr znaků od začátku do konce řádku pomocí volby -c
Výše uvedený příkaz vytiskne počáteční pozici na pátý znak. Zde se vynechá výchozí pozice a zadá se koncová pozice.
Řez polem (-f>) Pomocí příkazu cut
-f (pole): -c Tato možnost je užitečná pro linky pevné délky. Většina unixových souborů nemá řádky pevné délky. Chcete-li extrahovat užitečné informace, musíte je stříhat podle polí, nikoli podle sloupců. Seznam zadaných čísel polí musí být oddělen čárkou. Rozsahy nejsou popsány volbou -f . střih používá tab jako výchozí oddělovač polí, ale může také pracovat s jinými oddělovači pomocí -d volba.
Poznámka: Mezera není v UNIXu považována za oddělovač.
Syntax:
cut -d 'delimiter' -f (field number) file.txt>
Extrahujte první pole:
Jako v souboru state.txt pole jsou oddělena mezerou, pokud není použita volba -d, vytiskne celý řádek:
cut -f 1 state.txt>

Extrahujte první pole pomocí volby -f
Pokud ` -d' Pokud se použije možnost, považuje se mezera za oddělovač pole nebo oddělovač:
cut -d ' ' -f 1 state.txt>

prostor jako oddělovač nebo oddělovač polí
Extrahujte pole 1 až 4:
Příkaz vytiskne pole od prvního do čtvrtého každého řádku ze souboru.
cut -d ' ' -f 1-4 state.txt>

Příkaz vytiskne pole od prvního do čtvrtého
Výstup doplňku (--complement>) Pomocí příkazu cut
-doplněk: Jak název napovídá, doplňuje výstup. Tuto možnost lze použít v kombinaci s jinými možnostmi buď s -F nebo s -C .
cut --complement -d ' ' -f 1 state.txt>

-doplněk
cut --complement -c 5 state.txt>

-doplněk
Oddělovač výstupu (--output-delimiter>) Pomocí příkazu cut
-oddělovač výstupu: Ve výchozím nastavení je výstupní oddělovač stejný jako vstupní oddělovač, který zadáváme v řezu -d volba. Chcete-li změnit oddělovač výstupu, použijte volbu –output-delimiter=oddělovač .
cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

Zde příkaz cut změní oddělovač (%) ve standardním výstupu mezi poli, který je zadán pomocí volby -f .
Verze zobrazení (--version>) Pomocí příkazu cut
-verze: Tato volba se používá k zobrazení verze cut, která aktuálně běží na vašem systému.
cut --version>

zobrazit verzi příkazu řez
Jak používat ocas s trubkami(|) v příkazu cut
Příkaz cut lze spojit s mnoha dalšími příkazy unixu. V následujícím příkladu výstup kočka příkaz je zadán jako vstup do střih příkaz s -F možnost seřadit názvy stavů pocházející ze souboru state.txt v opačném pořadí.
cat state.txt | cut -d ' ' -f 1 | sort -r>

pomocí tail with pipe (|) v příkazu cut
Může být také spojen s jedním nebo více filtry pro dodatečné zpracování. Stejně jako v následujícím příkladu používáme příkaz cat, head a cut a jehož výstup je uložen do souboru se jménem list.txt pomocí direktivy(>).
cat state.txt | head -n 3 | cut -d ' ' -f 1>list.txt>
cat list.txt>

průmysl a továrna
přesměrování výstupu do jiného souboru
Často kladené otázky o příkazu cut v Linuxu – FAQ
Jak mohu použít cut> příkaz k extrahování konkrétních sloupců ze souboru?
Příklad: Chcete-li extrahovat první a třetí sloupec ze souboru CSV s názvem ` data.csv`> .
cut -d',' -f1,3 data.csv>
Mohu použít cut> extrahovat řadu znaků z každého řádku?
Ano můžeš. Chcete-li extrahovat znaky 5 až 10 z každého řádku pojmenovaného souborutext.txt>.
cut -c5-10 text.txt>
Jak mohu změnit oddělovač používaný souborem cut> příkaz?
Použijte ` -d`> možnost následovaná znakem oddělovače. Chcete-li například použít dvojtečku (:>) jako oddělovač.
cut -d':' -f1,3 data.txt>
Je možné použít cut> extrahovat pole na základě pozice postavy?
Ano, pozice znaků můžete určit pomocí ` -c`> volba. Chcete-li například extrahovat znaky 1 až 5 a 10 až 15 z každého řádku.
cut -c1-5,10-15 data.txt>
Jak mohu použít cut> extrahovat pole na základě konkrétního oddělovače a uložit je do nového souboru?
Chcete-li extrahovat pole oddělená čárkami a uložit je do nového souboru s názvem ` output.tx> t`>
cut -d',' -f1,3 data.csv>output.txt>
Závěr
V tomto článku jsme diskutovali o ` cut`> příkaz v Linuxu, což je všestranný nástroj pro extrahování konkrétních sekcí ze souborů na základě pozice bajtu, znaku nebo pole. Rozřezává řádky textu a vydává extrahovaná data. Selhání zadání volby pomocícut>příkaz způsobí chybu. Lze zpracovat více souborů, ale výstup nezahrnuje názvy souborů. Možnosti jako ` -b`> , ` -c`> a ` -f`> umožňují extrakci podle bajtu, znaku a pole. The--complement>volba invertuje výběr, tiskne to, co není vybráno, a--output-delimiter>změní oddělovač výstupu. Příkaz také obsahuje možnosti pro zobrazení verze a lze jej použít v kombinaci s jinými příkazy prostřednictvím potrubí pro další zpracování.
?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L