Operační systémy založené na Linuxu nabízejí mnoho nástrojů pro zpracování textu z příkazového řádku, které můžete použít ve své každodenní rutině. Příkaz cut je jedním z takových nástrojů pro manipulaci s textem, který používá oddělovače, bajty, pole a sloupce k načtení požadovaného řetězce z databáze s plochým souborem nebo řádku.
Protože databáze plochých souborů nemá strukturní vztah a záznamy jsou odděleny pomocí oddělovačů, je cut ideálním nástrojem pro extrakci znaků nebo bajtů informací. Tento článek podrobně pojednává o příkazu vyjmout a ukazuje některé praktické příklady s různými možnostmi filtru, které vám pomohou začít s nástrojem.
Přehled příkazu řezu
cut používá následující základní syntaxi:
střih
Můžete jej také použít pomocí dalších příkazů takto:
echo “řetězec_znaků” | střih
Upozorňujeme, že absence jakékoli možnosti generuje chybu. Zde jsou některé příznaky, které můžete použít s cutem k vyvolání jeho různých funkcí:
Volba | Popis |
---|---|
-b | Řeže podle pozice bajtu |
-C | Střihy podle pozice postavy |
-d | Extrahuje řetězec pomocí oddělovače zadaného pomocí pole (-f). |
-F | Extrahuje podle zadaného pole |
-s | Výtažky pouze pro oddělovače |
--doplněk | Vytiskněte výstup kromě pole, které jste zadali |
--oddělovač-výstupu | Nahraďte stávající oddělovač oddělovačem, který jste zadali |
Zde je několik příkladů příkazu vyjmout, které vám pomohou lépe porozumět nástroji a jeho funkcím.
1. Extrahujte konkrétní znaky z řetězce
Použijte -b možnost načíst řetězce znaků podle jejich počtu bajtů, a to následovně:
echo "Ahoj světe" | řez -b 1,2,3,5,8,9
Výstup:
Heloor
Místo řetězce můžete také zadat cestu k souboru:
cut -b 1,2,3,4,5 název souboru.txt
Nebo můžete extrahovat znaky podle jejich pozice v textu. Použijte -C možnost následovaná sekvencí/pořadím znaků, které potřebujete načíst následovně:
echo "Ahoj světe" | řez -c 1,2,3,5,6,8,10,11
Výstup:
Ahoj starý
Podobně k načtení polí nebo sloupců z databáze plochých souborů použijte příkaz cut s -F možnost vlajky:
cut -f 3 databáze.txt
2. Omezte rozsah bajtů nebo znaků
Můžete také použít -b příznak s příkazem cut pro extrahování a tisk více rozsahů bajtů následovně:
řez -b 1-7,16-23 databáze.txt
Můžete definovat rozsah pro načítání znaků pomocí -C příznak takto:
cut -c 1-7,16-23 databáze.txt
3. Extrahujte text z počáteční nebo koncové pozice
Použijte -cn- možnost extrahovat text od n-tého znaku až do konce řádku, kde n je index znaku v řetězci.
Chcete-li například extrahovat řetězec začínající od šestého znaku do konce řádku:
cut -c6- database.txt
Nebo použijte následující příkaz k načtení od začátku do konce m znaky ze souboru:
cut -c-8 databáze.txt
4. Vyjmout více polí ze souboru
Můžete také vytisknout více polí ze souboru pomocí -F vlajka.
cut -f 1,2 databáze.txt
Výstup:
JMÉNO VĚK
Jhon 20
Líza 24
Jack 18
Bruce 23
Nancy 19
5. Extrahujte text pomocí oddělovačů
Můžete použít -d příznak k určení oddělovače s příznakem -F volba. Oddělovač určuje znak používaný k oddělení polí v textovém souboru.
Chcete-li například extrahovat první sloupec souboru /etc/passwd soubor, použijte dvojtečku (:) jako oddělovač:
cut -d ‘:’ -f 1 /etc/passwd
Podobně je hodnotou oddělovače v daném proudu textu jedna mezera:
echo "1 % z 1 %" | řez -d ' ' -f 2,3
Výstup:
1 % z
6. Změňte oddělovač výstupu pro zobrazení
The --oddělovač-výstupu příznak přidává flexibilitu výstupu příkazu řez. Například můžete použít příznak k zobrazení výstupu na samostatném řádku pomocí $'\n' (nový řádek) takto:
grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\n'
Výstup:
alice
Alice
/bin/sh
Kromě toho můžete také nahradit oddělovač vstupního souboru oddělovačem podle vašeho výběru ve výstupu pomocí --oddělovač-výstupu vlajka:
grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@
Výstup:
root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin
7. Vyjmout pole pouze tehdy, když řádek obsahuje oddělovač
Použijte -s příznak extrahovat pole pouze v případě, že řádky obsahují oddělovač. Například následující příkaz nenačte pole -f 1 pokud nemá oddělovač mezery:
echo "HelloWorld" | řez -d " " -f 1 -s
Naopak, níže uvedený příkaz vygeneruje výstup, protože řetězec obsahuje zadaný oddělovač:
echo "Ahoj světe" | řez -d " " -f 1 -s
Výstup:
Ahoj
Podobně můžete jako oddělovač použít jakýkoli jiný znak:
echo "Hello: World" | řez -d ":" -f 2 -s
Výstup:
Svět
8. Doplňte výstup příkazu
Nástroj cut také umožňuje vytisknout všechna pole kromě zadaného pole. Použijte --doplněk následující možnost pro načtení všech podrobností účtu uživatele root kromě pátého sloupce:
grep "root" /etc/passwd | řez -d ':' --doplň -s -f 5
Výstup:
root: x: 0:0:/root:/bin/bash
Podobně v příkladu níže, -f 1 parametr se musí zobrazit Ahoj textu však kvůli --doplněk možnost, vytiskne pouze zbytek.
echo "Ahoj celému světu" | řez -d " " -f 1 --doplň
Výstup:
celému Světu
Nejlepší na tom je, že můžete kombinovat příkaz cut se standardním výstupem jiných příkazů Linux/Unix.
sed je jedním z takových nástrojů pro úpravu textu, který můžete použít k odstranění, vložení a nahrazení textu. Jeho výstup můžete snadno napojit na příkaz cut.
V níže uvedeném příkladu příkaz grep výstup je přesměrován do obslužného programu sed, který nahradí dvojtečku (:) pomlčkou (-) a poté příkaz cut zobrazí pole 1, 6 a 7 následovně:
grep alice /etc/passwd | sed 's/:/-/g' | řez -d ' ' -f 1,5,7
Výstup:
alice-x-1005-1008-Alice-/home/new/alice-/bin/sh
Práce s textem v Linuxu pomocí cut
Příkaz cut je flexibilní a efektivní nástroj příkazového řádku, který můžete použít v různých případech použití při manipulaci s textem. Využívá operace k odfiltrování textu ze souborů nebo standardních vstupních dat. Tento nástroj má také výhodu, která umožňuje uživatelům omezit text, který chtějí zobrazit, a přidat oddělovače podle vlastního výběru.
Tento příkaz má však také určitá omezení. Regulární výrazy nelze použít k určení oddělovače nebo použít souběžné vícenásobné volby příkazu vyjmutí. Tento článek obsahuje praktické příklady tohoto nástroje od základních až po pokročilé úrovně, které začátečníkům pomohou s jasným pochopením příkazů pro manipulaci s textem v Linuxu.
Chcete vylepšit svou hru pro Linux a dozvědět se více o manipulaci s textem? Zde je pět nejlepších nástrojů příkazového řádku Linuxu, které vám pomohou začít.
Přečtěte si další
- Linux
- Linuxové příkazy
- Základní Linux
- Linux Bash Shell

Rumaisa je spisovatelkou na volné noze v MUO. Nosila mnoho klobouků, od matematičky po nadšence pro informační bezpečnost, a nyní pracuje jako analytička SOC. Mezi její zájmy patří čtení a psaní o nových technologiích, linuxových distribucích a všem kolem Information Security.
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem