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:

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

5 najbolj uporabnih 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

DelitiTweetE-naslov
Povezane teme
  • Linux
  • Ukazi za Linux
  • Linux Elementary
  • Linux Bash Shell
O avtorju
Rumaisa Niazi (Objavljenih 10 člankov)

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.

Več od Rumaisa Niazi

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