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ą:

instagram viewer
grep šaknis /etc/passwd

Kai kurie standartiniai komandinės eilutės pavyzdžiai, skirti pradėti:

Galimybės Pavyzdys apibūdinimas
-c grep -c ./bashrc Suskaičiuokite eilučių, kuriose yra eilutė, skaičių
-i grep -i ./bashrc Atlikite nurodytos eilutės paiešką neskiriant didžiųjų ir mažųjų raidžių
-o grep -o failą Spausdina tik suderintą eilutę
-l grep -l "passwd" Dabartiniame kataloge spausdinami šabloną atitinkantys failų pavadinimai
-n grep -n failą 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.

8 geriausios terminalo programos, skirtos patobulintam „Linux“ produktyvumui

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

DalintisTviteryjeEl. paštas
Susijusios temos
  • Linux
  • Linux komandos
Apie autorių
Rumaisa Niazi (7 straipsniai paskelbti)

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.

Daugiau iš Rumaisa Niazi

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