Kas olete grepi varem kasutanud? Enamasti saab põhiline grep-trikk suurema osa tööst ära teha. Kuid grep pakub hulgaliselt võimalusi otsingu teostamiseks ja väljundi peenhäälestamiseks kasutatavamale versioonile. Selles artiklis uurime grep-käsu kasutamist.
Grep kasutamine
Olemasolu kontrollimine
Kui teil on mingisugune Linuxi distributsioon, on teil juba installitud grep. Käivitage terminalis järgmine käsk.
grep --versioon
Seda käsku kasutatakse praegu installitud grepi versiooni kuvamiseks. Nüüd vajame demofaili. Minu puhul genereerin tekstifaili, mis sisaldab kõiki minu süsteemi installitud pakette.
Põhitõed
Grepi põhikasutus järgib järgmist struktuuri.
grepVõi lihtsamaks mõistmiseks kasutage seda.
grepSellisel juhul teeb grep failis otsingu ja printib kõik read, mis sisaldavad mustrit (otsingutermin).
grep python ~ / Desktop / PackageList.txt
Grep otsis failist „PackageList.txt ”genereerisin varem ja printisin kõik read, mis sisaldavad sõna“ python ”.
Sama toimingut saab teha ka muul viisil. Vaadake järgmist näidet.
kass ~ / töölaud / pakettloend.txt | grep python
Siin saatsin käsku “cat” kasutades faili “PackageList.txt ”haaramiseks. Kassi väljundit kasutades tegi grep otsingu ja printis read, mis sisaldavad otsingutermini.
Nüüd tuleb üks lõbus asi. Võite sõna otseses mõttes mitu grep-käsku virnastada just nii.
kass ~ / töölaud / pakettloend.txt | grep - | haarama p | grep python
Esimene grep filtreeritakse sidekriipsuga joonteni, teine p-ga joonteni ja viimane grep pythoniga joonteni. Kõlab loogiliselt?
Suur- ja väiketähtede tundlikkus
Otsingu sooritamisel on suureks küsimuseks tõstutundlikkus. Vaikimisi on grep tõstutundlik.
Näiteks otsingu „Python” otsimisel ei kuvata tulemusi.
kass ~ / töölaud / pakettloend.txt | grep Python
Kui soovite grep-kirja muuta tundetuks, lisage järgmine valik.
kass ~ / töölaud / pakettloend.txt | grep -i Python
Failiotsing
Oletame, et teil on arvukate tekstifailidega kataloog. Teie eesmärk on tuvastada fail (id), mis sisaldavad mustrit või ei sisalda seda (otsingutermin).
Minu arvates on see meetod logifailide hunnikus otsimisel üsna kasulik. Kuna mul pole aega iga faili käsitsi avada ja kontrollida, pean selle töö minu jaoks tegema.
Vastet sisaldavate failide loendisse kandmiseks kasutage lippu -l.
grep -l
Nagu näitab tulemus, on termin „python” olemas kõigis 3 kataloogis „Desktop” leiduvas failis.
Failide loendis ilma vaste leidmiseks kasutage lippu -L.
grep -L
"NoMatch.txt ”on ainus fail, mis ei sisalda terminit“ python ”.
Pööratud otsing
Grepi vaikekäitumine on ainult sobiva mustriga joonte printimine? On aeg protsess tagasi pöörata. Seekord trükime ainult ridu ilma sobiva mustrita.
Lihtsalt läbige grepimiseks valik "-v".
kass ~ / töölaud / pakettloend.txt | grep -i -v Python
Ridade printimine enne / pärast matši
Vaikimisi prindib grep ainult rea, mis sobib otsingumustriga. Selle tehnika abil saate öelda grepile ka enne / pärast matši joonte printimiseks.
Enne matši joonte printimiseks kasutage järgmist struktuuri.
grep -B
Siin on 5 numbririda, mille grep trükib ENNE sobivat rida.
Pärast matši joonte printimiseks kasutage järgmist.
grep -A
Kuidas oleks printida nii enne kui pärast sobitamisjoont? Sellisel juhul kasutage lippu -C.
grep -C
Rea number
Kui grep näitab väljundit, ei mainita selles rea numbrit. Seotud reanumbri (de) jaoks kasutage lippu -n.
grep -n
Üksik sõna
Kui kasutatakse lippu -w, käsitleb grep mustrit tervikuna.
grep -w
Grepiotsingu piiramine
Grep võimaldab määrata failis otsitavate ridade arvu. See meetod on kasulik, kui tegemist on suure failiga (nt süsteemilogi). Kasutage lippu -m.
grep -m
Rekursiivne otsing
See on üks kõige kasulikumaid funktsioone, mida grep pakub raskeks kasutamiseks. Grep saab rekursiivselt otsida kataloogi ja leida kõik vasted kõigist failidest, millega ta silmitsi seisab.
grep -RVõi,
grep -r
Leian, et kasutan seda rekursiivset funktsiooni koos lipuga -l.
Vaikne režiim
Grepi saab käivitada vaikses režiimis. Vaikses režiimis töötades ei prindi grep terminali ühtegi väljundit. Selle asemel tagastatakse 0 (vähemalt leiti vaste) või 1 (vastet ei leitud).
grep -qkaja $?
Regex
Grep lubab ka regexi (regulaaravaldise) otsinguid. See lisab grepi kui otsingu tööriista täiesti uue keerukuse ja kasutatavuse.
Näiteks saate sulgude abil otsida korraga nii “liiga” kui “kaks”.
kass ~ / töölaud / gpl-3.0.txt | grep t [wo] o
See järgmine näide prindib joone ainult siis, kui vaste toimub rea alguses.
grep ^ GNU ~ / Desktop / gpl-3.0.txt
Mis puudutab lõpu sobitamist, siis kasutage seda.
haara sulle $ ~ / Desktop / gpl-3.0.txt
Kui soovite kasutada Perli regexi, siis kasutage lippu -P. See käsitleb mustrit Perli regeksina.
grep -PLõpumõtted
Grep pakub otsingufunktsiooni kohandamiseks palju võimalusi. Regexi kättesaadavus avab grepi potentsiaalseks kasutamiseks täiesti uue horisondi. Lahe on see, et saate kasutada nii üldist kui ka Perli regexi; olenevalt sellest, milles tunnete end mugavalt.
Kõige üksikasjalikuma selgituse saamiseks pöörduge alati manulehele.
mees haarama
Terviseks!