9 Praktické príklady príkazu cut v Linuxe


Staňte sa skúseným používateľom Linuxu tým, že sa naučíte manipulovať s textom pomocou príkazu cut.

Operačné systémy založené na Linuxe ponúkajú mnoho nástrojov na spracovanie textu v príkazovom riadku, ktoré môžete použiť vo svojej každodennej rutine. Príkaz cut je jedným z takýchto nástrojov na manipuláciu s textom, ktorý používa oddeľovače, bajty, polia a stĺpce na získanie požadovaného reťazca z databázy plochých súborov alebo riadku.

Keďže databáza plochých súborov nemá štrukturálny vzťah a záznamy sú oddelené pomocou oddeľovačov, cut je ideálnym nástrojom na extrahovanie znakov alebo bajtov informácií. Tento článok podrobne rozoberá príkaz vystrihnúť a demonštruje niekoľko praktických príkladov s rôznymi možnosťami filtrovania, ktoré vám pomôžu začať s nástrojom.

Prehľad príkazu rezu

cut používa nasledujúcu základnú syntax:

cut <option> <file>

Môžete ho použiť aj pomocou iných príkazov takto:

echo &ldquo;string_of_characters&rdquo; | cut <options>

Upozorňujeme, že absencia akejkoľvek možnosti generuje chybu. Tu je niekoľko príznakov, ktoré môžete použiť s rezom na vyvolanie jeho rôznych funkcií:

Option

Description

-b

Cuts by byte position

-c

Cuts by character position

-d

Extracts string using the delimiter specified with (-f) field option

-f

Extracts by a specified field

-s

Extracts for only delimiters

--complement

Print the output except for the field which you have specified

--output-delimiter

Replace the existing delimiter with the one you have specified

Tu je niekoľko príkladov príkazu cut, ktoré vám pomôžu lepšie pochopiť nástroj a jeho funkcie.

1. Extrahujte špecifické znaky z reťazca

Použite možnosť -b na načítanie reťazcov znakov podľa ich počtu bajtov, a to takto:

echo "Hello World" | cut -b 1,2,3,5,8,9

Výkon :

Heloor

Namiesto reťazca môžete zadať aj cestu k súboru:

cut -b 1,2,3,4,5 filename.txt

Alebo môžete extrahovať znaky podľa ich pozície v texte. Použite možnosť -c, za ktorou nasleduje postupnosť/poradie znakov, ktoré potrebujete načítať nasledovne:

echo "Hello World" | cut -c 1,2,3,5,6,8,10,11

Výkon :

Helo old

Podobne na načítanie polí alebo stĺpcov z databázy plochých súborov použite príkaz cut s voľbou príznaku -f:

cut -f 3 database.txt

2. Vystrihnite rozsah bajtov alebo znakov

Na extrahovanie a tlač viacerých rozsahov bajtov môžete použiť aj príznak -b s príkazom cut:

cut -b 1-7,16-23 database.txt

Rozsah načítania znakov môžete definovať pomocou príznaku -c takto:

cut -c 1-7,16-23 database.txt

3. Extrahujte text z počiatočnej alebo koncovej pozície

Použite možnosť -cn- na extrahovanie textu od n-tého znaku až po koniec riadku, kde n je index znaku v reťazci.

Ak chcete napríklad extrahovať reťazec začínajúci od šiesteho znaku po koniec riadku:

cut -c6- database.txt

Alebo použite nasledujúci príkaz na načítanie od začiatku do posledných m znakov zo súboru:

cut -c-8 database.txt

4. Vystrihnite viacero polí zo súboru

Môžete tiež vytlačiť viacero polí zo súboru pomocou príznaku -f.

cut -f 1,2 database.txt

Výkon :

NAME AGE 
Jhon 20
Lisa 24
Jack 18
Bruce 23
Nancy 19

5. Extrahujte text pomocou oddeľovačov

Pomocou príznaku -d môžete určiť oddeľovač pomocou možnosti -f. Oddeľovač určuje znak používaný na oddelenie polí v textovom súbore.

Ak chcete napríklad extrahovať prvý stĺpec súboru /etc/passwd, použite dvojbodku (:) ako oddeľovač:

cut -d &lsquo;:&rsquo; -f 1 /etc/passwd

Podobne hodnota oddeľovača v danom prúde textu je jedna medzera:

echo "The 1% of the 1%" | cut -d ' ' -f 2,3

Výkon :

1% of

6. Zmeňte oddeľovač výstupu pre zobrazenie

Príznak --output-delimiter dodáva výstupu príkazu cut flexibilitu. Môžete napríklad použiť príznak na zobrazenie výstupu v samostatnom riadku pomocou hodnoty $’\n’ (nový riadok), a to takto:

grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\n'

Výkon :

alice
Alice
/bin/sh

Okrem toho môžete vo výstupe nahradiť oddeľovač vstupného súboru oddeľovačom podľa vlastného výberu pomocou príznaku --output-delimiter:

grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@

Výkon :

root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin

7. Vystrihnúť polia len vtedy, keď riadok obsahuje oddeľovač

Pomocou príznaku -s extrahujte polia iba vtedy, keď riadky obsahujú oddeľovač. Napríklad nasledujúci príkaz nenačíta pole -f 1, pokiaľ nemá oddeľovač medzery:

echo "HelloWorld" | cut -d " " -f 1 -s

Naopak, nižšie uvedený príkaz vygeneruje výstup, pretože reťazec obsahuje zadaný oddeľovač:

echo "Hello World" | cut -d " " -f 1 -s

Výkon :

Hello

Podobne môžete ako oddeľovač použiť akýkoľvek iný znak:

echo "Hello:World" | cut -d ":" -f 2 -s

Výkon :

World

8. Doplňte výstup príkazu

Pomôcka na rezanie vám tiež umožňuje vytlačiť všetky polia okrem zadaného poľa. Použite možnosť --complement na získanie všetkých podrobností účtu používateľa root okrem piateho stĺpca:

grep "root" /etc/passwd | cut -d ':' --complement -s -f 5

Výkon :

root:x:0:0:/root:/bin/bash

Podobne v nižšie uvedenom príklade musí parameter -f 1 zobrazovať text Ahoj, avšak kvôli možnosti --complement sa vytlačí iba zvyšok.

echo "Hello to the whole World" | cut -d " " -f 1 --complement

Výkon :

to the whole World

9. Rezanie potrubia pomocou sed Utility

Najlepšie na tom je, že príkaz cut môžete skombinovať so štandardným výstupom iných príkazov Linux/Unix.

sed je jedným z takýchto nástrojov na úpravu textu, ktorý môžete použiť na odstránenie, vloženie a nahradenie textu. Jeho výstup môžete jednoducho prepojiť s príkazom cut.

V nižšie uvedenom príklade je výstup príkazu grep presmerovaný do obslužného programu sed, ktorý nahradí dvojbodku (:) spojovníkom (-) a potom príkaz cut zobrazí polia 1, 6 a 7 nasledovne:

grep alice /etc/passwd | sed 's/:/-/g' | cut -d ' ' -f 1,5,7

Výkon :

alice-x-1005-1008-Alice-/home/new/alice-/bin/sh

Práca s textom v systéme Linux pomocou cut

Príkaz cut je flexibilný a efektívny nástroj príkazového riadka, ktorý môžete použiť v rôznych prípadoch použitia pri manipulácii s textom. Využíva operácie na odfiltrovanie textu zo súborov alebo štandardných vstupných údajov. Pomôcka má tiež výhodu, ktorá umožňuje používateľom obmedziť text, ktorý chcú zobraziť, a pridať oddeľovače podľa vlastného výberu.

Tento príkaz má však aj určité obmedzenia. Nemôžete použiť regulárne výrazy na zadanie oddeľovača alebo súbežné použitie viacerých možností príkazu rezu. Tento článok obsahuje praktické príklady tohto nástroja od základnej až po pokročilú úroveň, aby pomohol začiatočníkom jasne pochopiť príkazy na manipuláciu s textom v systéme Linux.

Súvisiace články: