Operacijski sistemi, ki temeljijo na Linuxu, ponujajo številne pripomočke za obdelavo besedila ukazne vrstice, ki jih lahko uporabljate v vsakodnevni rutini. Ukaz cut je eden od takih pripomočkov za manipulacijo besedila, ki uporablja ločila, bajte, polja in stolpce za pridobivanje zahtevanega niza iz baze podatkov ravni datoteke ali vrstice.
Ker baza podatkov s ploščatimi datotekami nima strukturnega odnosa in so zapisi ločeni s pomočjo ločil, je cut idealno orodje za ekstrakcijo znakov ali bajtov informacij. Ta članek podrobno obravnava ukaz cut in prikazuje nekaj praktičnih primerov z različnimi možnostmi filtrov, s katerimi lahko začnete z orodjem.
Pregled ukaza cut
cut uporablja naslednjo osnovno sintakso:
rezati
Lahko ga pošljete tudi z drugimi ukazi, kot sledi:
odmev "niz_znakov" | rezati
Upoštevajte, da odsotnost katere koli možnosti povzroči napako. Tukaj je nekaj zastav, ki jih lahko uporabite z cut za priklic njegovih različnih funkcij:
Možnost | Opis |
---|---|
-b | Reže glede na položaj bajtov |
-c | Rezi glede na položaj znakov |
-d | Izvleče niz z uporabo ločila, podanega z možnostjo polja (-f). |
-f | Ekstrakti po določenem polju |
-s | Izvlečki samo za ločila |
--dopolnjujejo | Natisnite izhod, razen polja, ki ste ga določili |
--izhodni ločilec | Zamenjajte obstoječi ločilo s tistim, ki ste ga določili |
Tukaj je nekaj primerov ukaza cut, ki vam bo pomagal bolje razumeti orodje in njegove funkcije.
1. Izvlecite določene znake iz niza
Uporabi -b možnost pridobivanja nizov znakov glede na njihovo število bajtov, kot sledi:
odmev "Hello World" | rez -b 1,2,3,5,8,9
Izhod:
Heloor
Namesto niza lahko določite tudi pot do datoteke:
cut -b 1,2,3,4,5 ime datoteke.txt
Lahko pa izvlečete znake glede na njihov položaj v besedilu. Uporabi -c možnost, ki ji sledi zaporedje/vrstni red znakov, ki jih morate pridobiti, kot sledi:
odmev "Hello World" | rez -c 1,2,3,5,6,8,10,11
Izhod:
Živjo stari
Podobno za pridobivanje polj ali stolpcev iz baze podatkov s ploščatimi datotekami uporabite ukaz cut z -f možnost zastave:
cut -f 3 baza podatkov.txt
2. Izrežite obseg bajtov ali znakov
Uporabite lahko tudi -b zastavico z ukazom cut, da ekstrahirate in natisnete več obsegov bajtov, kot sledi:
cut -b 1-7,16-23 database.txt
Določite lahko obseg za pridobivanje znakov z uporabo -c označite kot sledi:
cut -c 1-7,16-23 database.txt
3. Ekstrahirajte besedilo iz začetnih ali končnih položajev
Uporabi -cn- možnost ekstrahiranja besedila od n-ega znaka naprej do konca vrstice, kjer n je indeks znaka v nizu.
Na primer, če želite izvleči niz, ki se začne od šestega znaka do konca vrstice:
cut -c6- database.txt
Ali pa uporabite naslednji ukaz za pridobivanje od začetka do zadnjega m znaki iz datoteke:
cut -c-8 database.txt
4. Izrežite več polj iz datoteke
Prav tako lahko natisnete več polj iz datoteke z uporabo -f zastavo.
cut -f 1,2 baze podatkov.txt
Izhod:
IME STAROST
Jhon 20
Lisa 24
Jack 18
Bruce 23
Nancy 19
5. Ekstrahirajte besedilo z uporabo ločil
Lahko uporabite -d zastavico, da določite ločilo z -f možnost. Ločilo določa znak, ki se uporablja za ločevanje polj v besedilni datoteki.
Na primer, da izvlečete prvi stolpec /etc/passwd datoteko, uporabite dvopičje (:) kot ločilo:
cut -d ‘:’ -f 1 /etc/passwd
Podobno je vrednost ločila v danem toku besedila en presledek:
echo "1% od 1%" | rez -d ' ' -f 2,3
Izhod:
1 % od
6. Spremenite izhodni ločilnik za zaslon
The --izhodni ločilec zastavica doda fleksibilnost izhodu ukaza cut. Zastavico lahko na primer uporabite za prikaz izhoda v ločeni vrstici z uporabo $’\n’ (newline) vrednost, kot sledi:
grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\n'
Izhod:
alice
Alice
/bin/sh
Poleg tega lahko ločilo vhodne datoteke zamenjate z ločilom po vaši izbiri v izhodu z uporabo --izhodni ločilec zastava:
grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@
Izhod:
root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin
7. Izrežite polja samo, če vrstica vsebuje ločilo
Uporabi -s zastavico za ekstrahiranje polj samo, če vrstice vsebujejo ločilo. Naslednji ukaz na primer ne bo pridobil polja -f 1 razen če ima ločilo presledkov:
echo "HelloWorld" | rez -d " " -f 1 -s
Nasprotno, spodaj omenjeni ukaz bo ustvaril izhod, saj niz vsebuje določeno ločilo:
odmev "Hello World" | rez -d " " -f 1 -s
Izhod:
zdravo
Podobno lahko uporabite tudi kateri koli drug znak kot ločilo:
odmev "Pozdravljeni: Svet" | rez -d ":" -f 2 -s
Izhod:
Svet
8. Dopolni izhod ukaza
Pripomoček za izrezovanje vam omogoča tudi tiskanje vseh polj razen določenega polja. Uporabi --dopolnjujejo možnost, kot sledi, da pridobite vse podrobnosti o korenskem uporabniškem računu, razen petega stolpca:
grep "root" /etc/passwd | cut -d ':' --komplement -s -f 5
Izhod:
koren: x: 0:0:/root:/bin/bash
Podobno je v spodnjem primeru -f 1 parameter mora biti prikazan zdravo besedilo pa zaradi --dopolnjujejo možnost, natisne samo preostanek.
odmev "Pozdravljeni vsemu svetu" | cut -d " " -f 1 --komplement
Izhod:
vsemu svetu
Najboljši del je, da lahko kombinirate ukaz cut s standardnim izhodom drugih ukazov Linux/Unix.
sed je eno takšnih orodij za urejanje besedila, ki jih lahko uporabite za brisanje, vstavljanje in zamenjavo besedila. Njegov izhod lahko zlahka usmerite v ukaz za izrezovanje.
V spodnjem primeru, ukaz grep izhod se po cevovodu prenese v pripomoček sed, ki nadomesti dvopičje (:) z vezajem (-), nato pa cut prikaže polja 1, 6 in 7, kot sledi:
grep alice /etc/passwd | sed 's/:/-/g' | rez -d ' ' -f 1,5,7
Izhod:
alice-x-1005-1008-Alice-/home/new/alice-/bin/sh
Delo z besedilom v Linuxu z uporabo cut
Ukaz cut je prilagodljiv in učinkovit pripomoček ukazne vrstice, ki ga lahko uporabite v različnih primerih uporabe manipulacije z besedilom. Uporablja operacije za filtriranje besedila iz datotek ali standardnih vhodnih podatkov. Pripomoček ima tudi prednost, saj uporabnikom omogoča, da omejijo besedilo, ki ga želijo prikazati, in dodajo ločila po lastni izbiri.
Vendar ima ta ukaz tudi nekaj omejitev. Ne morete uporabiti regularnih izrazov za podajanje ločila ali uporabiti sočasne ukazne možnosti za več rezov. Ta članek je zajel osnovne in napredne praktične primere tega pripomočka, ki začetnikom pomaga pri jasnem razumevanju ukazov za manipulacijo besedila v Linuxu.
Želite nadgraditi svojo igro Linux in izvedeti več o manipulaciji z besedilom? Tukaj je pet najboljših orodij ukazne vrstice Linux za začetek vaše poti.
Preberite Naprej
- Linux
- Ukazi za Linux
- Linux Elementary
- Linux Bash Shell
Rumaisa je svobodna pisateljica pri MUO. Nosila je veliko klobukov, od matematike do navdušenca za informacijsko varnost, zdaj pa dela kot analitik SOC. Njena zanimanja vključujejo branje in pisanje o novih tehnologijah, distribucijah Linuxa in karkoli v zvezi z informacijsko varnostjo.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!
Kliknite tukaj, da se naročite