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:
rezať
Môžete ho použiť aj pomocou iných príkazov takto:
echo “reťazec_znakov” | rezať
Upozorňujeme, že absencia akejkoľvek možnosti generuje chybu. Tu sú niektoré príznaky, ktoré môžete použiť s rezom na vyvolanie jeho rôznych funkcií:
Možnosť | Popis |
---|---|
-b | Reže podľa pozície bajtu |
-c | Strihy podľa polohy postavy |
-d | Extrahuje reťazec pomocou oddeľovača špecifikovaného s možnosťou poľa (-f). |
-f | Extrahuje podľa zadaného poľa |
-s | Výpisy len pre oddeľovače |
--doplniť | Vytlačte výstup okrem poľa, ktoré ste zadali |
--oddeľovač-výstupu | Nahraďte existujúci oddeľovač tým, ktorý ste určili |
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ži -b možnosť načítať reťazce znakov podľa ich počtu bajtov, a to takto:
echo "Ahoj svet" | rez -b 1,2,3,5,8,9
Výkon:
Heloor
Namiesto reťazca môžete zadať aj cestu k súboru:
vystrihnúť -b 1,2,3,4,5 názov súboru.txt
Alebo môžete extrahovať znaky podľa ich pozície v texte. Použi -c možnosť, za ktorou nasleduje sekvencia/poradie znakov, ktoré potrebujete načítať takto:
echo "Ahoj svet" | rez -c 1,2,3,5,6,8,10,11
Výkon:
Ahoj starý
Podobne, ak chcete získať polia alebo stĺpce z databázy plochých súborov, použite príkaz cut s -f možnosť vlajky:
cut -f 3 databáza.txt
2. Znížte rozsah bajtov alebo znakov
Môžete tiež použiť -b príznak s príkazom cut na extrahovanie a tlač viacerých rozsahov bajtov nasledovne:
cut -b 1-7,16-23 databaza.txt
Môžete definovať rozsah na načítanie znakov pomocou -c príznak takto:
cut -c 1-7,16-23 databáza.txt
3. Extrahujte text z počiatočnej alebo koncovej pozície
Použi -cn- možnosť extrahovať text 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 konca m znaky zo súboru:
cut -c-8 database.txt
4. Vystrihnúť viacero polí zo súboru
Môžete tiež vytlačiť viacero polí zo súboru pomocou -f vlajka.
cut -f 1,2 databáza.txt
Výkon:
MENO VEK
Ján 20
Líza 24
Jack 18
Bruce 23
Nancy 19
5. Extrahujte text pomocou oddeľovačov
Môžete použiť -d príznak na určenie oddeľovača s -f možnosť. Oddeľovač určuje znak používaný na oddelenie polí v textovom súbore.
Napríklad, ak chcete extrahovať prvý stĺpec súboru /etc/passwd súbor, použite dvojbodku (:) ako oddeľovač:
cut -d ‘:’ -f 1 /etc/passwd
Podobne hodnota oddeľovača v danom prúde textu je jedna medzera:
echo "1 % z 1 %" | rez -d ' ' -f 2,3
Výkon:
1 % z
6. Zmeňte oddeľovač výstupu pre zobrazenie
The --oddeľovač-výstupu príznak pridáva flexibilitu výstupu príkazu rezu. Napríklad môžete použiť príznak na zobrazenie výstupu v samostatnom riadku pomocou $'\n' (nový riadok) takto:
grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\n'
Výkon:
alice
Alice
/bin/sh
Okrem toho môžete tiež nahradiť oddeľovač vstupného súboru oddeľovačom podľa vášho výberu vo výstupe pomocou --oddeľovač-výstupu vlajka:
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č
Použi -s príznak na extrahovanie polí 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" | rez -d " " -f 1 -s
Naopak, nižšie uvedený príkaz vygeneruje výstup, pretože reťazec obsahuje zadaný oddeľovač:
echo "Ahoj svet" | rez -d " " -f 1 -s
Výkon:
Ahoj
Podobne môžete ako oddeľovač použiť akýkoľvek iný znak:
echo "Ahoj: Svet" | rez -d ":" -f 2 -s
Výkon:
Svet
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ži --doplniť nasledujúcu možnosť na načítanie všetkých podrobností používateľského účtu typu root okrem piateho stĺpca:
grep "root" /etc/passwd | strih -d ':' --doplnok -s -f 5
Výkon:
root: x: 0:0:/root:/bin/bash
Podobne v nižšie uvedenom príklade -f 1 parameter sa musí zobraziť Ahoj textu však z dôvodu --doplniť možnosť, vytlačí len zvyšok.
echo "Ahoj celý svet" | rez -d " " -f 1 --doplnok
Výkon:
do celého Sveta
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 príkaz grep výstup je presmerovaný do obslužného programu sed, ktorý nahradí dvojbodku (:) spojovníkom (-) a potom príkaz cut zobrazí polia 1, 6 a 7 takto:
grep alice /etc/passwd | sed 's/:/-/g' | rez -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.
Chcete vylepšiť svoju hru Linux a dozvedieť sa viac o manipulácii s textom? Tu je päť najlepších nástrojov príkazového riadka Linuxu, ktoré vám pomôžu začať.
Prečítajte si ďalej
- Linux
- Linuxové príkazy
- Linux Elementary
- Linux Bash Shell
Rumaisa je spisovateľkou na voľnej nohe v MUO. Nosila veľa klobúkov, od matematičky až po nadšenca informačnej bezpečnosti, a teraz pracuje ako analytička SOC. Medzi jej záujmy patrí čítanie a písanie o nových technológiách, distribúciách Linuxu a všetkom okolo informačnej bezpečnosti.
prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!
Kliknutím sem sa prihlásite na odber