Operētājsistēmas, kuru pamatā ir Linux, piedāvā daudzas komandrindas teksta apstrādes utilītas, kuras varat izmantot savā ikdienas darbā. Izgriešanas komanda ir viena no šādām teksta manipulācijas utilītprogrammām, kas izmanto atdalītājus, baitus, laukus un kolonnas, lai iegūtu nepieciešamo virkni no plakana faila datu bāzes vai rindas.
Tā kā vienotu failu datu bāzei nav strukturālu attiecību un ieraksti tiek atdalīti ar norobežotāju palīdzību, izgriešana ir ideāls rīks informācijas rakstzīmju vai baitu iegūšanai. Šajā rakstā ir detalizēti apskatīta izgriešanas komanda un parādīti daži praktiski piemēri ar dažādām filtra opcijām, lai sāktu darbu ar rīku.
Izgrieztās komandas pārskats
cut izmanto šādu pamata sintaksi:
griezt
Varat arī ievadīt to ar citām komandām, kā norādīts tālāk.
atbalss “rakstzīmju_virkne” | griezt
Lūdzu, ņemiet vērā, ka opcijas neesamība rada kļūdu. Šeit ir daži karodziņi, kurus varat izmantot ar izgriezumu, lai izsauktu tās dažādās funkcijas:
Opcija | Apraksts |
---|---|
-b | Izgriež pēc baita pozīcijas |
-c | Izgriezumi pēc rakstzīmju pozīcijas |
-d | Izvelk virkni, izmantojot atdalītāju, kas norādīts ar (-f) lauka opciju |
-f | Izvilkumi pēc noteikta lauka |
-s | Izvilkumi tikai norobežotājiem |
-- papildināt | Izdrukājiet izvadi, izņemot jūsu norādīto lauku |
--izejas norobežotājs | Aizstāt esošo norobežotāju ar norādīto |
Šeit ir daži izgriešanas komandas piemēri, kas palīdzēs labāk izprast rīku un tā funkcijas.
1. Izņemiet noteiktas rakstzīmes no virknes
Izmantojiet -b iespēja iegūt rakstzīmju virknes pēc to baitu skaita, kā norādīts tālāk:
atbalss "Sveika pasaule" | griezums -b 1,2,3,5,8,9
Izvade:
Heloor
Virknes vietā varat norādīt arī faila ceļu:
cut -b 1,2,3,4,5 faila nosaukums.txt
Vai arī varat izvilkt rakstzīmes atbilstoši to pozīcijai tekstā. Izmantojiet -c opcija, kam seko rakstzīmju secība/kārtība, kas jāiegūst šādi:
atbalss "Sveika pasaule" | griezums -c 1,2,3,5,6,8,10,11
Izvade:
Sveiks vecais
Līdzīgi, lai ielādētu laukus vai kolonnas no vienotas faila datu bāzes, izmantojiet komandu cut ar -f karoga opcija:
cut -f 3 datubāze.txt
2. Izgriezt baitu vai rakstzīmju diapazonu
Varat arī izmantot -b atzīmējiet ar karodziņu ar komandu cut, lai izvilktu un izdrukātu vairākus baitu diapazonus šādi:
cut -b 1-7,16-23 datubāze.txt
Varat definēt rakstzīmju iegūšanas diapazonu, izmantojot -c karogu šādi:
izgriezt -c 1-7,16-23 datubāze.txt
3. Izņemiet tekstu no sākuma vai beigu pozīcijām
Izmantojiet -cn- iespēja izvilkt tekstu no n-tās rakstzīmes līdz rindas beigām, kur n ir virknes rakstzīmes rādītājs.
Piemēram, lai izvilktu virkni, sākot no sestās rakstzīmes līdz rindas beigām:
izgriezt -c6- datubāze.txt
Vai arī izmantojiet šo komandu, lai ielādētu no sākuma līdz pēdējam m rakstzīmes no faila:
izgriezt -c-8 datubāze.txt
4. Izgrieziet vairākus laukus no faila
Varat arī izdrukāt vairākus laukus no faila, izmantojot -f karogs.
cut -f 1,2 datubāze.txt
Izvade:
VĀRDS VECUMS
Jānis 20
Liza 24
Džeks 18
Brūss 23
Nensija 19
5. Izvilkt tekstu, izmantojot atdalītājus
Jūs varat izmantot -d karodziņu, lai norādītu atdalītāju ar -f opciju. Atdalītājs norāda rakstzīmi, ko izmanto, lai atdalītu laukus teksta failā.
Piemēram, lai izvilktu pirmo kolonnu /etc/passwd failu, izmantojiet kolu (:) kā atdalītāju:
cut -d ‘:’ -f 1 /etc/passwd
Līdzīgi norobežotāja vērtība dotajā teksta plūsmā ir viena atstarpe:
atbalss "1% no 1%" | cut -d ' ' -f 2,3
Izvade:
1% no
6. Mainīt displeja izvades norobežotāju
The --izejas norobežotājs karodziņš piešķir izgriešanas komandas izvadei elastību. Piemēram, varat izmantot karogu, lai parādītu izvadi atsevišķā rindā, izmantojot $'\n' (jaunrinda) vērtība, kā norādīts tālāk:
grep alise /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\n'
Izvade:
alise
Alise
/bin/sh
Turklāt jūs varat arī aizstāt ievades faila atdalītāju ar jūsu izvēlēto atdalītāju izvadē, izmantojot --izejas norobežotājs karogs:
grep sakne /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@
Izvade:
root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin
7. Izgrieziet laukus tikai tad, ja rindā ir norobežotājs
Izmantojiet -s atzīmējiet, lai izvilktu laukus tikai tad, ja rindās ir norobežotājs. Piemēram, šī komanda neiegūs lauku -f 1 ja vien tam nav atstarpes norobežotāja:
atbalss "HelloWorld" | cut -d " " -f 1 -s
Gluži pretēji, tālāk minētā komanda ģenerēs izvadi, jo virknē ir norādīts norobežotājs:
atbalss "Sveika pasaule" | cut -d " " -f 1 -s
Izvade:
Sveiki
Tāpat kā norobežotāju varat izmantot jebkuru citu rakstzīmi:
atbalss "Sveika: Pasaule" | cut -d ":" -f 2 -s
Izvade:
Pasaule
8. Papildiniet komandu izvadi
Izgriešanas utilīta arī ļauj izdrukāt visus laukus, izņemot norādīto lauku. Izmantojiet -- papildināt šo opciju, lai iegūtu visu informāciju par saknes lietotāja kontu, izņemot piekto kolonnu:
grep "sakne" /etc/passwd | cut -d ':' --complement -s -f 5
Izvade:
sakne: x: 0:0:/root:/bin/bash
Līdzīgi zemāk esošajā piemērā -f 1 parametram ir jāparāda Sveiki teksts tomēr sakarā ar -- papildināt opciju, tas drukā tikai pārējo.
atbalss "Sveiks visai pasaulei" | cut -d " " -f 1 --papildināt
Izvade:
visai Pasaulei
Labākā daļa ir tāda, ka varat apvienot izgriešanas komandu ar citu Linux/Unix komandu standarta izvadi.
sed ir viens no šādiem teksta rediģēšanas rīkiem, ko varat izmantot, lai dzēstu, ievietotu un aizstātu tekstu. Jūs varat viegli novadīt tā izvadi uz cut komandu.
Tālāk esošajā piemērā grep komanda izvade tiek nosūtīta uz sed utilītu, kas aizvieto kolu (:) ar defisi (-), un pēc tam izgriezumā tiek parādīti 1., 6. un 7. lauki šādi:
grep alise /etc/passwd | sed 's/:/-/g' | cut -d ' ' -f 1,5,7
Izvade:
alise-x-1005-1008-Alice-/home/new/alice-/bin/sh
Darbs ar tekstu operētājsistēmā Linux, izmantojot izgriezumu
Izgriešanas komanda ir elastīga un efektīva komandrindas utilīta, ko varat izmantot dažādos teksta manipulācijas gadījumos. Tas izmanto darbības, lai filtrētu tekstu no failiem vai standarta ievades datiem. Lietderīgajai utilītai ir arī priekšrocība, kas ļauj lietotājiem ierobežot tekstu, ko viņi vēlas parādīt, un pievienot norobežotājus pēc savas izvēles.
Tomēr šai komandai ir arī daži ierobežojumi. Jūs nevarat izmantot regulārās izteiksmes, lai norādītu atdalītāju vai vienlaikus izmantotu vairākas izgriešanas komandas opcijas. Šajā rakstā ir apskatīti šīs utilītas praktiskie piemēri no pamata līdz augstāka līmeņa, lai palīdzētu iesācējiem skaidri izprast teksta manipulācijas komandas operētājsistēmā Linux.
Vai vēlaties uzlabot savu Linux spēli un uzzināt vairāk par teksta manipulācijām? Šeit ir pieci populārākie Linux komandrindas rīki, lai sāktu savu ceļojumu.
Lasiet Tālāk
- Linux
- Linux komandas
- Linux Elementary
- Linux Bash Shell
Rumaisa ir MUO ārštata rakstniece. Viņa ir nēsājusi daudzas cepures, sākot no matemātiķa līdz informācijas drošības entuziastei, un tagad strādā par SOC analītiķi. Viņas interesēs ir lasīt un rakstīt par jaunām tehnoloģijām, Linux izplatīšanu un jebko, kas saistīts ar informācijas drošību.
Abonējiet mūsu biļetenu
Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!
Noklikšķiniet šeit, lai abonētu