Linux izstrādātāji ievēro filozofiju izveidot mazas programmas, kas veic vienu uzdevumu un dara to labi. Kā piemēru ņemiet Linux teksta apstrādes rīkus, tie ir viegli un ar modulāru funkcionalitāti. Lai gan šie teksta apstrādes rīki atšķiras pēc sarežģītības un funkcionalitātes, tie ir noderīgi vidē, kurā nav pieejams grafiskais lietotāja interfeiss.

Rakstā ir apskatīti labākie Linux rīki failu lasīšanai un regulāro izteiksmju izmantošanai, lai veiktu darbības ar atlasīto tekstu. Tas aptver arī to pamata funkcionalitāti un piemērus labākai izpratnei.

1. grep

grep ir Linux teksta manipulācijas utilīta, kas failā vai tekstā meklē rakstzīmju vai modeļu virkni, kas pazīstama kā regulāras izteiksmes. Grep rīks pieder utilītu saimei, kurā ietilpst egrep, fgrep un grep, starp kuriem fgrep ir ātrākais no visiem, savukārt grep ir vienkāršākais.

Vispārējā grep lietošanas sintakse ir šāda:

grep -options virknes faila nosaukums

Piemēram, lai meklētu vārdu "sakne". /etc/passwd failu:

grep sakne /etc/passwd
instagram viewer

Daži standarta komandrindas piemēri, lai sāktu, ir:

Iespējas Piemērs Apraksts
-c grep -c ./bashrc Saskaitiet rindu skaitu, kurās virkne pastāv
-i grep -i ./bashrc Veiciet norādītās virknes meklēšanu, kas nav reģistrjutīga
-o grep -o failu Drukā tikai atbilstošo virkni
-l grep -l "passwd" Drukā pašreizējā direktorijā esošo failu nosaukumus, kas atbilst paraugam
-n grep -n failu Izdrukā rindas numuru rindiņā, kurā ir norādītā virkne
virkne1|virkne2 grep failu "string1|string2". Atrodiet un izdrukājiet vairākas virknes no faila

Līdzīgi varat izmantot ^ metaraksts ar komandu grep, lai parādītu visas atbilstošās virknes, kas sākas ar noteiktām rakstzīmēm.

Piemēram, šī komanda ievada komandas env izvadi kā grep ievadi un parāda mainīgos, kas sākas ar "HO":

env | grep ^HO

Saistīts: Praktiski Linux Grep komandu piemēri

2. awk

awk ir jaudīga skriptu valoda un komandrindas teksta manipulācijas rīks, kas var veikt skenēšanu pa rindiņām un salīdzināt rindas ar modeļiem. Komandas awk pamata sintakse ir darbība, kas definēta starp pēdiņām un krokainajām iekavām, kam seko faila nosaukums.

awk '{action}' faila nosaukums
awk '{raksts; action}' faila nosaukums

Lietderība meklē failu, izmantojot regulārās izteiksmes, un veic darbības parametrā definēto funkciju. awk izpilda skriptu katrā rindā, ja neiestatāt paraugu, kā parādīts zemāk:

awk '{print $1}' awk_examples.txt

...kur $1 parāda pirmo lauku awk_examples.txt failu.

Sekojošā komanda veic drukas funkciju dotajā paraugā, aizstājot otro lauku "Pasaule"ar"Aliseun parāda visu rindu ($0):

atbalss "Sveika pasaule" | awk '{$2="Alise"; drukāt $0}'

Izvade:

Sveika Alise

Līdzīgi varat izmantot funkciju drukāt $0 no iepriekš esošās komandas, lai atdarinātu grep funkcionalitāte.

awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh

3. kārtot

sort ir vēl viena Linux komandrindas utilīta, kas palīdz parādīt norādītā teksta faila saturu sakārtotā formātā. Piemēram, komandas awk izvadi var ievadīt kā ievadi kārtošanas utilītai šādi:

awk '{print $1}' awk_examples.txt | kārtot > kārtot_teksts.txt
cat sort_text.txt

Izvade:

Saistīts: Kā kārtot teksta failus operētājsistēmā Linux, izmantojot kārtošanu

4. sed

sed vai straumes redaktors izmanto ievadi kā rakstzīmju straumi un veic norādītā teksta filtrēšanu un teksta transformācijas (dzēst, aizstāt un aizstāt).

Varat to izmantot skriptā un rediģēt failus neinteraktīvi. Tādējādi utilītas galvenais mērķis ir virknes/rakstzīmju aizstāšana. Vispārējā sintakse ir šāda:

sed 's/string/substitution/option' fails

Izveidojiet failu, izmantojot nejaušus teikumus, lai praktizētu un izprastu šīs utilītas darbību.

Aizstāsim vārda gadījuma "divi" katrā faila rindā ar "2" izmantojot -g karogs globālai nomaiņai, kā norādīts tālāk:

sed 's/two/2/g' sed_examples.txt > sed_examples2.txt

Līdzīgi izmantojiet -d karodziņš, lai dzēstu konkrētu rindiņu no faila:

sed '2d' sed_examples.txt

Varat arī aizstāt virkni, norādot rindas numuru (4 s/divi/2/p) un drukāt tikai aizstāto rindiņu šādi:

sed -n '4 s/two/2/p' sed_examples2.txt

The -n karodziņš augstāk esošajā komandā atspējo ievades straumes automātisko drukāšanu izvadē. Varat izmantot šo opciju savā labā, lai aizstātu grep utilīta funkcionalitāti ar sed.

Piemēram, varat modificēt iepriekš minēto komandu, iekļaujot tikai regulārās izteiksmes modeli /two/p tāds, ka -lpp karodziņš izdrukās rindas tikai standarta izvades straumē.

sed -n '/two/p' sed_examples2.txt

Saistīts: Šie 10 sed piemēri padarīs jūs par Linux jaudīgu lietotāju

5. griezt

Izgriešana ir vēl viena komandrindas utilīta, kas izgriež/izņem teksta daļas no rindas vai faila. Tā izgriež tekstu, pamatojoties uz norādīto lauku, rakstzīmes vai baita pozīciju, un ievada rezultātu standarta izvadē.

Lietderība izmanto šādu sintakse:

griezt  failu

Izmantojiet -b iespēja izgriezt sadaļu vai saturu, izmantojot noteiktu baitu vai baitu diapazonu:

cut -b 1 cut_examples.txt

Izmantojiet -c karodziņš, lai izvilktu tekstu, norādot rakstzīmju pozīcijas:

cut -c 1,3,5 cut_examples.txt

Visbeidzot, varat arī izvilkt tekstu, norādot laukus ar -f variants un -d atstarpes vai lauka norobežotājam:

cut -d " " -f 1 cut_examples.txt

Šeit ir diapazonu saraksts ar piemēriem un aprakstiem, kurus varat izmantot ar rakstzīmi -c un baits -b opcijas:

Diapazons Piemērs Apraksts
n- izgriezt -c 7- faila nosaukumu Izvilkt rakstzīmi no n-tā veselā skaitļa līdz rindas beigām
n-m cut -b 7-15 faila nosaukums Izvilkums no vesela skaitļa n-m katrā rindā no ievades faila
-m izgriezt -c -7 faila nosaukumu Izvelk rindas, sākot no m līdz rindas beigām

Ņemiet vērā, ka teksta izvilkšanas diapazonus nevar definēt, izmantojot lauku -f opciju.

Teksta manipulēšana ar Linux komandām

Linux piedāvā daudzas programmas un rīkus failu vai teksta apstrādei un darbam ar tiem. To visu apgūšana var nebūt nepieciešama, jo jūs varat viegli aizpildīt atstarpi ar citu, tiklīdz esat labi pārvaldījis vienu, piemēram, izmantojot sed kā grep vai awk kā grep, taču tas nevar attiekties uz katru rīku.

Turklāt Linux komandām ir strauja mācīšanās līkne, taču, attīstot prasmes, tās var izrādīties ļoti noderīgas un efektīvas jebkura Linux lietotāja, īpaši sistēmas administratora, dzīvē.

8 labākās termināļa lietotnes uzlabotai Linux produktivitātei

Vai esat noguris no vecās un garlaicīgas termināļa lietotnes, kas ir iepriekš instalēta operētājsistēmā Linux? Apskatiet šīs astoņas termināļa lietotnes, kas uzlabos jūsu darbplūsmu.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Linux
  • Linux komandas
Par autoru
Rumaisa Niazi (Publicēti 7 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