12 Hagnýt dæmi um Linux grep stjórn


Hefur þú einhvern tíma staðið frammi fyrir því verkefni að leita að ákveðnum streng eða mynstri í skrá en hefur ekki hugmynd um hvar þú átt að byrja að leita? Jæja þá, hér er grep til bjargar!

grep er öflugur skráarmynsturleitari sem kemur útbúinn í hverri dreifingu á Linux. Ef, af einhverjum ástæðum, það er ekki sett upp á kerfinu þínu, geturðu auðveldlega sett það upp í gegnum pakkastjórann þinn (apt-get á Debian/Ubuntu og yum á RHEL/CentOS/Fedora).

$ sudo apt-get install grep         #Debian/Ubuntu
$ sudo yum install grep             #RHEL/CentOS/Fedora

Ég hef komist að því að auðveldasta leiðin til að bleyta fæturna með grep er að kafa bara beint inn og nota nokkur dæmi úr raunveruleikanum.

1. Leitaðu og finndu skrár

Segjum að þú sért nýbúinn að setja upp nýtt eintak af nýja Ubuntu á vélinni þinni og að þú ætlir að gefa Python forskriftarforskrift. Þú hefur verið að leita á vefnum að leita að kennsluefni, en þú sérð að það eru tvær mismunandi útgáfur af Python í notkun og þú veist ekki hver var sett upp á vélinni þinni af Ubuntu uppsetningarforritinu, eða hvort það setti upp einhverjar einingar. Einfaldlega keyrðu þessa skipun:

# dpkg -l | grep -i python
ii  python2.7                        2.7.3-0ubuntu3.4                    Interactive high-level object-oriented language (version 2.7)
ii  python2.7-minimal                2.7.3-0ubuntu3.4                    Minimal subset of the Python language (version 2.7)
ii  python-openssl                   0.12-1ubuntu2.1                     Python wrapper around the OpenSSL library
ii  python-pam                       0.4.2-12.2ubuntu4                   A Python interface to the PAM library

Í fyrsta lagi keyrðum við dpkg –l, sem sýnir uppsetta *.deb pakka á kerfinu þínu. Í öðru lagi sendum við þessi úttak í grep –i python, sem einfaldar stöður „fara í grep og sía út og skila öllu með „python“ í. –i valmöguleikinn er til staðar til að hunsa-case-case, þar sem grep er há- og hástöfum.Að nota –i valmöguleikann er góð venja að komast í, nema auðvitað að þú sért að reyna að negla niður nákvæmari leit.

2. Leitaðu og síaðu skrár

The grep er einnig hægt að nota til að leita og sía innan einstakra skráa eða margar skrár. Tökum þessa atburðarás:

Þú átt í einhverjum vandræðum með Apache vefþjóninn þinn og þú hefur leitað til einnar af mörgum frábærum spjallborðum á netinu og beðið um hjálp. Góða sálin sem svarar þér hefur beðið þig um að birta innihald /etc/apache2/sites-available/default-ssl skráarinnar þinnar. Væri það ekki auðveldara fyrir þig, gaurinn sem hjálpar þér, og alla sem lesa það, ef þú gætir fjarlægt allar athugasemdalínurnar? Jæja þú getur! Keyrðu þetta bara:

# grep –v “#”  /etc/apache2/sites-available/default-ssl

Valmöguleikinn –v segir grep að snúa úttakinu sínu við, sem þýðir að í stað þess að prenta samsvarandi línur, gerðu hið gagnstæða og prentaðu allar línurnar sem passa ekki við tjáninguna, í þessu tilfelli, # athugasemdalínurnar.

3. Finndu aðeins allar .mp3 skrár

The grep getur verið mjög gagnlegt til að sía frá stdout. Til dæmis, segjum að þú sért með heila möppu fulla af tónlistarskrám á fullt af mismunandi sniðum. Þú vilt finna allar *.mp3 skrárnar frá listamanninum JayZ, en þú vilt ekkert af endurhljóðblanduðu lögunum. Notkun find skipun með nokkrum grep pípum mun gera bragðið:

# find . –name “*.mp3” | grep –i JayZ | grep –vi “remix”

Í þessu dæmi erum við að nota find til að prenta allar skrárnar með *.mp3 endingunni, setja hana í grep –i til að sía út og prenta allar skrár með nafninu \JayZ“ og síðan aðra pípu í grep –vi sem síar út og prentar ekki öll skráarnöfn með strengnum (í öllum tilvikum) \remix.

4. Birta fjölda lína fyrir eða eftir leitarstreng

Aðrir valkostir eru –A og –B rofarnir, sem sýna samsvarandi línu og fjölda lína annaðhvort sem koma fyrir eða á eftir leitarstrengnum. Þó að mannasíðan gefi ítarlegri útskýringu, finnst mér auðveldast að muna valkostina sem –A = eftir og –B = á undan:

# ifconfig | grep –A 4 eth0
# ifconfig | grep  -B 2 UP

5. Prentar fjölda lína í kringum samsvörun

-C valmöguleikinn grep er svipaður, en í stað þess að prenta línurnar sem koma annaðhvort fyrir eða eftir strenginn, prentar það línurnar í hvora áttina:

# ifconfig | grep –C 2 lo

6. Telja fjölda leikja

Svipað og að setja grep streng í orðafjölda (wc forrit) getur innbyggður valkostur grep gert það sama fyrir þig:

# ifconfig | grep –c inet6

7. Leitaðu að skrám eftir gefinn streng

–n valmöguleikinn fyrir grep er mjög gagnlegur þegar kembiforrit eru í skrám meðan á samsetningarvillum stendur. Það sýnir línunúmerið í skránni á tilteknum leitarstreng:

# grep –n “main” setup..py

8. Leitaðu að streng endurkvæmt í öllum möppum

Ef þú vilt leita að streng í núverandi möppu ásamt öllum undirmöppunum geturðu tilgreint –r möguleikann til að leita endurkvæmt:

# grep –r “function” *

9. Leitar að öllu mynstrinu

Með því að fara framhjá –w valkostinum til greps leitar að öllu mynstrinu sem er í strengnum. Til dæmis, með því að nota:

# ifconfig | grep –w “RUNNING”

Prentar út línuna sem inniheldur mynstrið innan gæsalappa. Á hinn bóginn, ef þú reynir:

# ifconfig | grep –w “RUN”

Ekkert verður skilað þar sem við erum ekki að leita að mynstri, heldur heilu orði.

10. Leitaðu að streng í Gzipped Files

Verið er að minnast á afleiður grep. Sú fyrsta er zgrep, sem, svipað og zcat, er til notkunar á gzipped skrám. Það tekur sömu valkosti og grep og er notað á sama hátt:

# zgrep –i error /var/log/syslog.2.gz

11. Passaðu reglubundna tjáningu í skrám

egrepið er önnur afleiða sem stendur fyrir „Extended Global Regular Expression“. Það þekkir fleiri meta-stafi tjáningar eins og + ? | og().

egrep er mjög gagnlegt til að leita að frumskrám og öðrum kóða, ef þörf krefur. Það er hægt að kalla það frá venjulegu grep með því að tilgreina –E valkostinn.

# grep –E

12. Leitaðu að föstum mynsturstreng

Fgrepið leitar í skrá eða lista yfir skrár að föstum mynsturstreng. Það er það sama og grep –F. Algeng leið til að nota fgrep er að senda skrá af mynstrum til þess:

# fgrep –f file_full_of_patterns.txt file_to_search.txt

Þetta er bara upphafspunktur með grep, en eins og þú sérð líklega er það ómetanlegt í margvíslegum tilgangi. Burtséð frá einföldu einni línu skipunum sem við höfum innleitt, er hægt að nota grep til að skrifa öflug cron störf, og öflug skeljaforskrift, til að byrja með.

Vertu skapandi, gerðu tilraunir með valkostina á mansíðunni og komdu með grep-tjáningar sem þjóna þínum eigin tilgangi!