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í:

instagram viewer
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.

5 nejužitečnějších linuxových příkazů pro manipulaci s textem

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ší

PodíltweetE-mailem
Související témata
  • Linux
  • Linuxové příkazy
  • Základní Linux
  • Linux Bash Shell
O autorovi
Rumaisa Niazi (10 zveřejněných článků)

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.

Více od Rumaisa Niazi

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