grep

Linuxi käsk Grep

Linuxi käsk Grep
Grep on üks käepärasemaid tööriistu, mis teie käsutuses võivad olla. See käsurea utiliit teostab otsinguid lihttekstiga andmekogumites. Grep on tegelikult lühendglobaalselt otsida a rümmargune expression ja lkrint ”. Grep alustas teekonda UNIXi perekonna koosseisus. Aja jooksul on see nüüd saadaval kõigile populaarsetele platvormidele nagu Linux, Mac, BSD ja isegi Windows!

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.

grep

Või lihtsamaks mõistmiseks kasutage seda.

grep -e -f

Sellisel 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 / search / directory / *

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 / search / directory / *

"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 -R

Võ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 -q
kaja $?

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 -P

Lõ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!

Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...
Tasuta ja avatud lähtekoodiga mängumootorid Linuxi mängude arendamiseks
See artikkel hõlmab loetelu tasuta ja avatud lähtekoodiga mängumootoritest, mida saab kasutada 2D- ja 3D-mängude arendamiseks Linuxis. Selliseid mängu...