GNU/Linux >> Znalost Linux >  >> Linux

Linux cut Command Vysvětlení pomocí 6 příkladů

Úvod

cut command je nástroj příkazového řádku, který vám umožňuje vyjmout části zadaného souboru nebo dat z potrubí a vytisknout výsledek na standardní výstup. Příkaz ořízne části řádku podle pole, oddělovače, pozice bajtu a znaku.

V tomto tutoriálu se dozvíte, co je cut příkaz je a jak jej používat.

Předpoklady

  • Systém se systémem Linux.
  • Přístup k terminálu.

cut Syntaxe příkazu

cut příkaz má následující syntaxi:

cut [option] [file]

Možnosti

Zadání [option] je nutné. V opačném případě příkaz vydá chybu. Dostupné možnosti jsou popsány v následující části.

Soubor

Pro [file] , zadejte název souboru, který chcete zpracovat. Pokud nezadáte název souboru, příkaz cut příkaz ke čtení ze standardního vstupu, v takovém případě cut filtruje potrubí. Pokud zadáte více názvů souborů, cut příkaz zřetězí požadovaný obsah.

vyjmout možnosti příkazu

cut volby příkazu poskytují pokyny k použití oddělovače, ořezávání podle pozice bajtu, pole nebo znaku. Pro každý cut použijte jednu možnost příkaz, který spustíte.

Dostupné možnosti jsou:

Možnost Popis
-f (--fields=LIST) Vyberte pomocí zadaného pole, sady polí nebo rozsahu polí.
-b (--bytes=LIST) Vyberte pomocí zadaného bajtu, sady bajtů nebo rozsahu bajtů.
-c (--characters=LIST) Vyberte pomocí zadaného znaku, znakové sady nebo rozsahu znaků.
-d (--delimiter) Slouží k určení oddělovače, který se má použít namísto výchozího oddělovače TAB.
--complement Pokud je tato možnost zadaná, dává pokyn cut pro zobrazení všech bajtů, znaků nebo polí kromě vybraných.
-s (--only-delimited) Výchozí nastavení je tisknout řádky, které neobsahují oddělovací znaky. Určení -s volba dává pokyn cut, aby netiskl řádky, které neobsahují oddělovače.
--output-delimiter Ve výchozím nastavení cut používá vstupní oddělovač jako výstupní oddělovač. Určení --output-delimiter umožňuje zadat jiný oddělovač výstupu.

-f , b a -c možnosti přebírají LIST argument, který je jedním z následujících:

  • Celé číslo N představující bajt, pole nebo znak počínaje 1.
  • Více celých čísel oddělených čárkami.
  • Rozsah celých čísel.
  • Více rozsahů celých čísel, oddělených čárkami.

Každý rozsah může být jeden z následujících:

  • N- - Začíná od celého čísla N (pole, bajt nebo znak) až do konce řádku.
  • N-M - Z celého čísla N až po celé číslo M včetně.
  • -M - Od prvního pole, bajtu nebo znaku až po zadané M pole, bajt nebo znak.

Příklady řezu Linuxu

Níže jsou uvedeny nejběžnější cut případy použití příkazů.

Důležité: Věnujte pozornost národnímu prostředí souboru/příkazového výstupu, který zpracováváte. Ořezávání znaků nebo bajtů v jiném jazyce než angličtině může vést k nesprávnému výstupu, pokud je dotyčný znak delší než jeden bajt.

Vyjmout po bajtech

-b umožňuje extrahovat data pomocí bajtů. Syntaxe je:

cut -b [LIST] [file]

[LIST] argument jsou bajty, které se mají extrahovat z každého řádku [file] .

V závislosti na tom, co chcete extrahovat, můžete vyjmout jeden bajt, více bajtů nebo rozsah bajtů. Chcete-li vyjmout z určitého souboru, zadejte název souboru na konci příkazu. Použijeme například employees.txt pro testování:

Chcete-li extrahovat první bajt z každého vstupního řádku, spusťte:

cut -b 1 employees.txt

Příkaz vytiskne pouze první bajt z každého vstupního řádku souboru.

Následující příklad ukazuje, jak vstoupit do příkazu who a extrahovat prvních 5 bajtů z výstupu:

who | cut -b -5

Vyjmout podle znaků

Chcete-li ořezat podle znaků, zadejte -c volba. Řezání po znacích je podobné ořezávání po bytech, s tím rozdílem, že je potřeba zadat pozici znaku spíše než pozici bajtu. Syntaxe je:

cut -c [LIST] [file]

[LIST] argument určuje znaky, které mají být extrahovány z každého řádku [file] .

Například:

cut -c 10- employees.txt

Příkaz extrahuje vše od znaku 10 až do konce řádku z každého řádku souboru employees.txt . Výsledky jsou vytištěny standardním výstupem.

Následující příklad ukazuje výsledek, když soubor není zadán a cut čte svůj vstup ze standardního vstupu. Podívejte se na who výstup příkazu:

Výstup indikuje, že je aktuálně přihlášen jeden uživatel. Použijte cut příkaz k extrahování uživatelského jména přihlášeného uživatele z who výstup příkazu:

who | cut -c 1-8

Ve výše uvedeném příkladu dáváme pokyn cut extrahovat znaky 1 až 8 z každého řádku vstupu. V případě více výsledků seřaďte výsledky připojením příkazu s | sort .

Dále použijte cut extrahovat více různých znaků z řádku. Například zobrazit uživatelské jméno a čas přihlášení všech přihlášených uživatelů:

who | cut -c 1-8,18-

Vyjmout na základě oddělovače

Pokud pole nejsou oddělena výchozím znakem tabulátoru, použijte -d možnost zadat jiný oddělovač. To znamená, že znak zadaný za -d volba je považována za oddělovač v řádcích. Syntaxe je:

cut -d[delimiter] [file]

Místo [delimiter] argument, zadejte požadovaný oddělovač. Jako oddělovač můžete použít jakýkoli znak. Pomocí cut příkaz k extrahování polí ze souboru bez zadání -d znamená, že výchozím oddělovačem je znak tabulátoru .

V následujícím příkladu použijeme mezery jako oddělovač a vytiskneme druhé pole:

echo "phoenixNAP is a global IT services provider" | cut -d ' ' -f 2

Vyjmout podle polí

Při propojení do příkazů, jejichž výstup nemá pevný formát (např. who příkaz), -c možnost není užitečná. Pomocí -f možnost oddělení podle polí je v takovém případě lepší volbou.

Například:

cut -f 2 employees.txt

Ve výše uvedeném příkladu jsme použili -f možnost extrahovat druhé pole ze souboru employees.txt soubor.

Chcete-li ze souboru vyjmout konkrétní pole, zadejte jiný oddělovač. Například /etc/passwd výstup souboru obsahuje všechny uživatele ve vašem systému, identifikační čísla, domovský adresář atd.

Data v /etc/passwd soubor není zarovnán stejným způsobem jako data v who příkazový výstup. Nemůžete tedy extrahovat všechny uživatele v systému spoléháním se na číslo znaku.

Pole v souboru /etc/passwd soubory jsou odděleny dvojtečkou. Proto spočítejte počet dvojteček, abyste extrahovali stejná pole. Například:

cut -d: -f1,6 /etc/passwd

Výstup vrátí každého uživatele v systému a jeho domovský adresář odpovídající polím 1 a 6.

Doplňte výběr

--complement volba vytiskne vše kromě znaku/bajtu/pole na zadané pozici. Například následující příkaz vytiskne všechna pole kromě prvního a třetího:

cut employees.txt -f 1 --complement

Zadejte oddělovač výstupu

Při zadávání více znaků/bajtů/polí cut příkaz zřetězí výstup bez oddělovače. Zadejte oddělovač ve výstupu pomocí --output-delimiter volba.

Chcete-li například nastavit oddělovač výstupu na _ (podtržítko), použijte:

cut employees.txt -f 1,3 --output-delimiter='_'

Linux
  1. Příkaz nslookup Linux vysvětlený s příklady

  2. Příkaz Linux Traceroute, vysvětlený s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. Příkaz vypnutí Linuxu s příklady

  3. Příklady příkazů cut v Linuxu

  1. Linux ip příkaz s příklady

  2. Vysvětlení příkazu Linux cut pro začátečníky (s příklady)

  3. Příkaz Linux ldd vysvětlený s příklady