Razvijalci Linuxa sledijo filozofiji ustvarjanja majhnih programov, ki opravijo eno nalogo in jo dobro opravijo. Vzemite za primer orodja za obdelavo besedil Linux, ki so lahka in imajo modularno funkcionalnost. Čeprav se ta orodja za obdelavo besedila razlikujejo po kompleksnosti in funkcionalnosti, so priročna v okolju, kjer grafični uporabniški vmesnik ni na voljo.
Članek pokriva najboljša orodja Linuxa za branje datotek in uporabo regularnih izrazov za izvajanje operacij na izbranem besedilu. Zajema tudi njihovo najosnovnejšo funkcionalnost in primere za boljše razumevanje.
1. grep
grep je Linux pripomoček za manipulacijo besedila, ki v datoteki ali besedilu išče niz znakov ali vzorcev, znanih kot regularni izrazi. Orodje grep spada v družino pripomočkov, ki vključujejo egrep, fgrep in grep, med katerimi je fgrep najhitrejši, medtem ko je grep najlažji.
Splošna sintaksa za uporabo grep je naslednja:
grep -options niz ime datoteke
Na primer, če želite poiskati besedo "root" v datoteko /etc/passwd:
grep root /etc/passwd
Nekateri standardni primeri ukazne vrstice za začetek so:
Opcije | Primer | Opis |
---|---|---|
-c | grep -c |
Preštejte število vrstic, v katerih obstaja niz |
-jaz | grep -i |
Izvedite iskanje za navedeni niz brez upoštevanja velikih in malih črk |
-o | grep -o |
Natisne samo ustrezen niz |
-l | grep -l "passwd" | Natisne imena datotek v trenutnem imeniku, ki se ujemajo z vzorcem |
-n | grep -n |
Natisne številko vrstice vzdolž vrstice, ki vsebuje podani niz |
niz1|niz2 | grep datoteko "string1|string2". | Poiščite in natisnite več nizov iz datoteke |
Podobno lahko uporabite ^ metaznak z ukazom grep za prikaz vseh ujemajočih se nizov, ki se začnejo z določenimi znaki.
Naslednji ukaz na primer pošlje izhod ukaza env kot vhod v grep in prikaže spremenljivke, ki se začnejo z "HO":
env | grep ^HO
Povezano: Praktični primeri ukazov Grep za Linux
2. awk
awk je zmogljiv skriptni jezik in orodje za manipulacijo besedila v ukazni vrstici, ki lahko izvaja pregledovanje vrstic za vrstico in primerja vrstice z vzorci. Osnovna sintaksa ukaza awk je dejanje, definirano med enojnim narekovajem in zavitimi oklepaji, ki jim sledi ime datoteke.
awk '{action}' ime datoteke
awk '{vzorec; action}' ime datoteke
Pripomoček išče datoteko z uporabo regularnih izrazov in izvede funkcijo, definirano v parametru dejanja. awk izvede skript v vsaki vrstici, če ne nastavite vzorca, kot je prikazano spodaj:
awk '{print $1}' awk_examples.txt
...kje $1 prikaže prvo polje awk_examples.txt mapa.
Naslednji ukaz izvede funkcijo tiskanja na danem vzorcu z zamenjavo drugega polja "Svet"z"Alice," in prikaže celotno vrstico ($0):
odmev "Hello World" | awk '{$2="Alice"; natisniti $0}'
Izhod:
Pozdravljena Alice
Podobno lahko uporabite funkcijo natisnite $0 iz zgornjega ukaza za posnemanje grep funkcionalnost.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. razvrsti
sort je še en pripomoček ukazne vrstice Linux, ki vam pomaga prikazati vsebino določene besedilne datoteke v razvrščeni obliki. Izhod ukaza awk lahko na primer navedete kot vhod v pripomoček za razvrščanje, kot sledi:
awk '{print $1}' awk_examples.txt | razvrsti > razvrsti_besedilo.txt
mačka sort_text.txt
Izhod:
Povezano: Kako razvrstiti besedilne datoteke v Linuxu z uporabo razvrščanja
4. sed
sed ali urejevalnik toka vzame vnos kot tok znakov in izvede filtriranje in preoblikovanje besedila (izbriši, nadomesti in zamenja) za podano besedilo.
Lahko ga uporabite v skriptu in urejate datoteke neinteraktivno. Zato je najosnovnejši namen pripomočka zamenjava niza/znakov. Splošna sintaksa je:
sed 's/string/substitution/option' datoteka
Ustvarite datoteko z naključnimi stavki za vadbo in razumevanje delovanja tega pripomočka.
Zamenjajmo pojav besede "dve" v vsaki vrstici datoteke z "2" uporabljati -g zastavico za globalno zamenjavo, kot sledi:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
Podobno uporabite -d zastavico za brisanje določene vrstice iz datoteke:
sed '2d' sed_examples.txt
Niz lahko zamenjate tudi tako, da podate številko vrstice (4 s/dve/2/str) in samo natisne zamenjano vrstico na naslednji način:
sed -n '4 s/dve/2/p' sed_examples2.txt
The -n zastavica v zgornjem ukazu onemogoči samodejno tiskanje vhodnega toka na izhod. To možnost lahko uporabite v svojo korist za zamenjavo funkcionalnosti pripomočka grep s sed.
Zgornji ukaz lahko na primer spremenite tako, da vključite samo vzorec regularnega izraza /two/p tako da je -str flag bo natisnil samo vrstice v standardni izhodni tok.
sed -n '/two/p' sed_examples2.txt
Povezano: S temi 10 primeri sed boste postali močni uporabnik Linuxa
5. rezati
Cut je še en pripomoček ukazne vrstice, ki izreže/izvleče dele besedila iz vrstice ali datoteke. Besedilo razreže na podlagi določenega polja, znaka ali položaja bajtov in pošlje rezultat v standardni izhod.
Pripomoček ima naslednjo sintakso:
rezati mapa
Uporabi -b možnost rezanja odseka ali vsebine z uporabo določenega bajta ali obsega bajtov:
cut -b 1 cut_examples.txt
Uporabi -c zastavico za ekstrakcijo besedila z določitvijo položajev znakov:
cut -c 1,3,5 cut_examples.txt
Nazadnje lahko tudi izvlečete besedilo tako, da določite polja z -f možnost in -d za ločilo presledka ali polja:
cut -d " " -f 1 cut_examples.txt
Tukaj je seznam obsegov s primeri in opisi, ki jih lahko uporabite z znakom -c in bajt -b opcije:
Razpon | Primer | Opis |
---|---|---|
n- | cut -c 7- ime datoteke | Ekstrahirajte znak iz n-ega celega števila do konca vrstice |
n-m | cut -b 7-15 ime datoteke | Izvlečki iz celega števila n-m vsake vrstice iz vhodne datoteke |
-m | cut -c -7 ime datoteke | Izvleče vrstice, ki se začnejo od m do konca vrstice |
Upoštevajte, da s poljem ne morete definirati obsegov za ekstrakcijo besedila -f možnost.
Manipuliranje z besedilom z ukazi Linuxa
Linux ponuja veliko programov in orodij za ravnanje z datotekami ali besedilom in delo okoli njih. Učenje vseh jih morda ne bo potrebno, saj lahko vrzel zlahka zapolnite z drugim, ko se dobro oprimete, na primer z uporabo sed kot grep ali awk kot grep, vendar to ne more veljati za vsako orodje.
Poleg tega imajo ukazi Linux strmo krivuljo učenja, a ko enkrat razvijete veščino, se lahko izkažejo za zelo uporabne in učinkovite v življenju vsakega uporabnika Linuxa, zlasti sistemskega skrbnika.
Ste utrujeni od stare in dolgočasne terminalske aplikacije, ki je vnaprej nameščena v Linuxu? Oglejte si teh osem terminalskih aplikacij, ki bodo izboljšale vaš potek dela.
Preberite Naprej
- Linux
- Ukazi za Linux
Rumaisa je svobodna pisateljica pri MUO. Nosila je veliko klobukov, od matematike do navdušenca za informacijsko varnost, zdaj pa dela kot analitik SOC. Njena zanimanja vključujejo branje in pisanje o novih tehnologijah, distribucijah Linuxa in karkoli v zvezi z informacijsko varnostjo.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!
Kliknite tukaj, da se naročite