Linux poskytuje cut
příkaz pro odstranění částí z každého řádku výstupu v bash. cut
příkaz poskytuje mechanismus pro filtrování extrahovat sloupec / text ze souboru nebo standardního výstupu. Podrobné příklady lze nalézt níže., Máme následující textový soubor s názvem fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
Vybrat Sloupec
Vyjmout příkaz poskytuje možnost vyberte zadaný sloupec podle počet znaků pro všechny řádky. Zde vytiskneme všechny řádky 3 řádek po řádku na konzoli. Tím se vytiskne pouze jeden znak.,
$ cut -c3 fruits.txt
Vyberte Sloupec Pro Rozsah Znaků
V předchozím příkladu, máme tisknout jeden znak do terminálu. Můžeme také vytisknout více znaků na konzoli zadáním rozsahu znaků, jako je níže. Vidíme, že index znaků začíná na 1.,
$ cut -c1-6 fruits.txt
Vyberte Sloupec Pomocí startovní Pozice
Další užitečné funkce řezu je určující pouze do počáteční pozice až do konce.
$ cut -c3- fruits.txt
Vyberte Sloupec Pomocí Koncové Polohy
rozsah tisku od začátku až do zadané polohy pouze určení koncové polohy., To bude předpokládat, že startovní pozice jako 1
$ cut -c-3 fruits.txt
Vyberte jedno Pole
pole je část textu s oddělovači se specifickými znaky, jako je mezera, tabulátor dvojitá čárka, atd. Můžeme vybrat text s čísly polí. Ve výchozím nastavení pole oddělovač je karta. Náš text je již k dispozici karta pro vymezení. V tomto příkladu vybereme 3. pole.,
$ cut -f3 fruits.txt
Vyberte Více Polí
stejně Jako my v znaky můžeme také zadat pole rozsah. Vybereme názvy ovoce a počítáme s následujícím příkazem.
$ cut -f1-2 fruits.txt
následující příklad vybere více než jedno pole jeden po druhém pomocí se pohybuje.,
$ cut -f1,2,3 fruits.txt
Poslední Pole
Jeden z nejvíce populární použití cut
je tisk poslední pole. Problém je v tom, že počet polí se může měnit podle textu a nemůžeme zadat poslední pole pouze pomocí příkazu cut
. Následující příklad používá příkaz rev
k získání posledního pole.,
$ cat fruits.txt | rev | cut -f1 | rev
Vyberte Pole Obsahují Zadané Znaky
ve výchozím nastavení cut
nemají schopnost vyloučit linií podle postav, ale grep
může být použit snadno implementovat tuto funkci., Budeme vybírat pouze řádky obsahují app
$ grep "app" fruits.txt | cut -f1-2
Vyberte Pole s Výjimkou pro určené Znaky
Můžeme zvrátit předchozí příklad a odstranit nepotřebné řádky. Odstraníme řádky obsahující app
a poté vytiskneme sloupce od 1 do 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
Zadat Oddělovač
oddělovač se používá k rozdělení pole. Ve výchozím nastavení se karta používá jako oddělovač. Ale to může být zadáno s-d
volba jako níže. Podle příkladu používáme jako oddělovač :
, protože soubor passwd
jej používá. Pak chceme zobrazit pouze uživatelská jména, která jsou umístěna v poli 1.,
$ cut -d: -f1 /etc/passwd
Tisk s Výjimkou Polí
Jak jsme viděli dříve polích mohou být vytištěny, jak se pohybuje příliš. Můžeme také tisknout s výjimkou polí. Tím se vytisknou všechna přejmenovací pole. Podle příkladu můžeme chtít vytisknout všechna pole kromě 2.
změnit oddělovač
Text může mít ve výchozím nastavení oddělovače. V některých situacích můžeme chtít změnit oddělovač při tisku na konzolu., --output-delimiter
option can be used for this operation. The following example will change the tab delimiter to the comma.
$ cut -f1,2,3 --output-delimiter="," fruits.txt