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
Daži standarta komandrindas piemēri, lai sāktu, ir:
Iespējas | Piemērs | Apraksts |
---|---|---|
-c | grep -c |
Saskaitiet rindu skaitu, kurās virkne pastāv |
-i | grep -i |
Veiciet norādītās virknes meklēšanu, kas nav reģistrjutīga |
-o | grep -o |
Drukā tikai atbilstošo virkni |
-l | grep -l "passwd" | Drukā pašreizējā direktorijā esošo failu nosaukumus, kas atbilst paraugam |
-n | grep -n |
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ē.
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
- Linux
- Linux komandas
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