Linux kūrėjai vadovaujasi filosofija kurti mažas programas, kurios atlieka vieną užduotį ir atlieka ją gerai. Paimkite Linux teksto apdorojimo įrankius kaip pavyzdį, jie yra lengvi ir turi modulines funkcijas. Nors šie teksto apdorojimo įrankiai skiriasi sudėtingumu ir funkcionalumu, jie praverčia aplinkoje, kurioje nėra grafinės vartotojo sąsajos.
Straipsnyje aprašomi geriausi „Linux“ įrankiai, skirti skaityti failus ir naudoti reguliariąsias išraiškas, kad būtų galima atlikti operacijas su pasirinktu tekstu. Tai taip pat apima pagrindines jų funkcijas ir pavyzdžius, kad būtų geriau suprasti.
1. grep
grep yra Linux tekstu manipuliuojanti programa, kuri faile ar tekste ieško simbolių ar šablonų eilutės, vadinamos reguliariosiomis išraiškomis. Grep įrankis priklauso paslaugų šeimai, apimančiai egrep, fgrep ir grep, tarp kurių fgrep yra greičiausias iš visų, o grep yra lengviausias.
Bendra grep naudojimo sintaksė yra tokia:
grep -options eilutės failo pavadinimas
Pavyzdžiui, norėdami ieškoti žodžio „šaknis“. /etc/passwd failą:
grep šaknis /etc/passwd
Kai kurie standartiniai komandinės eilutės pavyzdžiai, skirti pradėti:
Galimybės | Pavyzdys | apibūdinimas |
---|---|---|
-c | grep -c |
Suskaičiuokite eilučių, kuriose yra eilutė, skaičių |
-i | grep -i |
Atlikite nurodytos eilutės paiešką neskiriant didžiųjų ir mažųjų raidžių |
-o | grep -o |
Spausdina tik suderintą eilutę |
-l | grep -l "passwd" | Dabartiniame kataloge spausdinami šabloną atitinkantys failų pavadinimai |
-n | grep -n |
Spausdina eilutės numerį išilgai eilutės, kurioje yra nurodyta eilutė |
eilutė1 | eilutė2 | grep failą "string1|string2". | Raskite ir išspausdinkite kelias eilutes iš failo |
Panašiai galite naudoti ^ metacharacter su grep komanda, kad būtų rodomos visos atitinkančios eilutės, prasidedančios tam tikrais simboliais.
Pavyzdžiui, ši komanda pateikia env komandos išvestį kaip grep įvestį ir rodo kintamuosius, prasidedančius "HO":
env | grep ^HO
Susijęs: Praktiniai Linux Grep komandų pavyzdžiai
2. awk
awk yra galinga scenarijų kalba ir komandinės eilutės teksto manipuliavimo įrankis, galintis atlikti eilutę po eilutės nuskaitymą ir palyginti eilutes su šablonais. Pagrindinė awk komandos sintaksė yra veiksmas, apibrėžtas tarp vienos kabutės ir riestinių skliaustų, po kurių nurodomas failo pavadinimas.
awk '{action}' failo pavadinimas
awk '{modelis; action}“ failo pavadinimas
Priemonė ieško failo naudodama reguliariąsias išraiškas ir atlieka veiksmo parametre apibrėžtą funkciją. awk vykdo scenarijų kiekvienoje eilutėje, jei nenustatote šablono, kaip parodyta toliau:
awk '{print $1}' awk_examples.txt
...kur $1 rodomas pirmasis laukas awk_examples.txt failą.
Ši komanda atlieka spausdinimo funkciją pagal nurodytą šabloną, pakeisdama antrą lauką "Pasaulis" su "Alisa“ ir rodoma visa eilutė ($0):
aidas "Sveikas pasaulis" | awk '{$2="Alisa"; spausdinti $0}'
Išvestis:
Sveika Alisa
Panašiai galite naudoti funkciją spausdinti $0 iš aukščiau esančios komandos, kad mėgdžiotumėte grep funkcionalumą.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. rūšiuoti
rūšiuoti yra kita Linux komandų eilutės programa, padedanti rodyti nurodyto tekstinio failo turinį surūšiuotu formatu. Pavyzdžiui, awk komandos išvestį galite įvesti kaip rūšiavimo paslaugų įvestį taip:
awk '{spausdinti $1}' awk_examples.txt | Rūšiuoti > Rūšiuoti_tekstas.txt
cat sort_text.txt
Išvestis:
Susijęs: Kaip rūšiuoti tekstinius failus „Linux“ naudojant rūšiavimą
4. sed
sed arba srauto rengyklė priima įvestį kaip simbolių srautą ir atlieka nurodyto teksto filtravimą bei teksto transformacijas (ištrina, pakeičia ir pakeičia).
Galite naudoti jį scenarijuje ir redaguoti failus neinteraktyviai. Taigi pagrindinis naudingumo tikslas yra pakeisti eilutę / simbolius. Bendra sintaksė yra tokia:
sed 's/string/substitution/option' failą
Sukurkite failą naudodami atsitiktinius sakinius, kad galėtumėte praktikuoti ir suprasti šios priemonės veikimą.
Pakeiskime žodžio "du" kiekvienoje failo eilutėje su "2" naudojant -g visuotinio pakeitimo vėliava, kaip nurodyta toliau:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
Panašiai naudokite -d vėliavėlė, kad ištrintumėte konkrečią eilutę iš failo:
sed '2d' sed_examples.txt
Taip pat galite pakeisti eilutę nurodydami eilutės numerį (4 s/dvi/2/p) ir spausdinant tik pakeistą eilutę taip:
sed -n '4 s/two/2/p' sed_examples2.txt
The -n vėliavėlė aukščiau esančioje komandoje išjungia automatinį įvesties srauto spausdinimą į išvestį. Galite naudoti šią parinktį savo naudai, norėdami pakeisti grep paslaugų funkciją į sed.
Pavyzdžiui, galite modifikuoti aukščiau pateiktą komandą įtraukdami tik reguliarųjį reiškinį /two/p toks, kad -p vėliavėlė spausdins eilutes tik į standartinį išvesties srautą.
sed -n '/two/p' sed_examples2.txt
Susijęs: Šie 10 pavyzdžių pavers jus galingu „Linux“ vartotoju
5. supjaustyti
Iškirpimas yra kita komandų eilutės programa, kuri išpjauna / ištraukia teksto dalis iš eilutės ar failo. Jis išpjauna tekstą pagal nurodytą lauką, simbolį arba baitą ir pateikia rezultatą į standartinę išvestį.
Naudingumas naudoja tokią sintaksę:
supjaustyti failą
Naudoti -b parinktis iškirpti skyrių arba turinį naudojant nurodytą baitą arba baitų diapazoną:
cut -b 1 cut_examples.txt
Naudoti -c vėliavėlė, kad ištrauktumėte tekstą, nurodydami simbolių vietas:
cut -c 1,3,5 cut_examples.txt
Galiausiai taip pat galite išgauti tekstą, nurodydami laukus su -f variantas ir -d tarpo ar lauko skyrikliui:
cut -d " " -f 1 cut_examples.txt
Čia yra diapazonų sąrašas su pavyzdžiais ir aprašymais, kuriuos galite naudoti su simboliu -c ir baitas -b galimybės:
diapazonas | Pavyzdys | apibūdinimas |
---|---|---|
n- | cut -c 7- failo pavadinimas | Ištraukite simbolį nuo n-ojo sveikojo skaičiaus iki eilutės pabaigos |
n-m | cut -b 7-15 failo pavadinimas | Ištrauka iš sveikųjų skaičių n-m kiekvienoje eilutėje iš įvesties failo |
-m | cut -c -7 failo pavadinimas | Ištraukia eilutes nuo m iki eilutės pabaigos |
Atminkite, kad negalite apibrėžti teksto ištraukimo diapazonų naudodami lauką -f variantas.
Teksto manipuliavimas naudojant Linux komandas
„Linux“ siūlo daug programų ir įrankių, skirtų failams ar tekstui tvarkyti ir dirbti. Gali būti, kad jų visų išmokti nereikės, nes spragą nesunkiai užpildysite kitu, kai gerai valdysite vieną, pvz., naudodami sed kaip grep arba awk kaip grep, tačiau tai negali būti taikoma kiekvienam įrankiui.
Be to, „Linux“ komandos turi staigią mokymosi kreivę, tačiau išsiugdžius įgūdžius jos gali pasirodyti labai naudingos ir veiksmingos bet kurio „Linux“ vartotojo, ypač sistemos administratoriaus, gyvenime.
Pavargote nuo senos ir nuobodžios terminalo programos, kuri yra iš anksto įdiegta sistemoje „Linux“? Peržiūrėkite šias aštuonias terminalo programas, kurios pagerins jūsų darbo eigą.
Skaitykite toliau
- Linux
- Linux komandos

Rumaisa yra laisvai samdoma rašytoja MUO. Ji dėvėjo daugybę skrybėlių – nuo matematikės iki informacijos saugumo entuziastės, o dabar dirba SOC analitike. Jos pomėgiai apima skaitymą ir rašymą apie naujas technologijas, Linux platinimą ir viską, kas susiję su informacijos saugumu.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Spauskite čia norėdami užsiprenumeruoti