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:

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

5 visnoderīgākās Linux teksta manipulācijas komandas

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

DalītiesČivinātE-pasts
Saistītās tēmas
  • Linux
  • Linux komandas
  • Linux Elementary
  • Linux Bash Shell
Par autoru
Rumaisa Niazi (10 publicēti raksti)

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.

Vairāk no Rumaisa Niazi

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