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 “string_of_characters” | 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,9Výkon :
HeloorNamiesto reťazca môžete zadať aj cestu k súboru:
cut -b 1,2,3,4,5 filename.txtAlebo 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,11Výkon :
Helo oldPodobne 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.txt2. 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.txtRozsah načítania znakov môžete definovať pomocou príznaku -c takto:
cut -c 1-7,16-23 database.txt3. 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.txtAlebo použite nasledujúci príkaz na načítanie od začiatku do posledných m znakov zo súboru:
cut -c-8 database.txt4. 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.txtVýkon :
NAME AGE
Jhon 20
Lisa 24
Jack 18
Bruce 23
Nancy 195. 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 ‘:’ -f 1 /etc/passwdPodobne hodnota oddeľovača v danom prúde textu je jedna medzera:
echo "The 1% of the 1%" | cut -d ' ' -f 2,3Výkon :
1% of6. 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/shOkrem 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/nologin7. 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 -sNaopak, nižšie uvedený príkaz vygeneruje výstup, pretože reťazec obsahuje zadaný oddeľovač:
echo "Hello World" | cut -d " " -f 1 -sVýkon :
HelloPodobne môžete ako oddeľovač použiť akýkoľvek iný znak:
echo "Hello:World" | cut -d ":" -f 2 -sVýkon :
World8. 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 5Výkon :
root:x:0:0:/root:/bin/bashPodobne 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 --complementVýkon :
to the whole World9. 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,7Výkon :
alice-x-1005-1008-Alice-/home/new/alice-/bin/shPrá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.





