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

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

5 najužitočnejších príkazov 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

zdieľamTweetujteEmail
Súvisiace témy
  • Linux
  • Linuxové príkazy
  • Linux Elementary
  • Linux Bash Shell
O autorovi
Rumaisa Niazi (10 publikovaných článkov)

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.

Viac od Rumaisa Niaziho

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