Înțelegerea comenzii grep cu exemple practice pentru a filtra și afișa cu ușurință conținutul fișierului
GREP
înseamnă „Global Regular Expression Print”. Este un utilitar de linie de comandă util oferit de Linux, pentru a căuta linia de text care se potrivește cu modelul oferit de utilizator.
grep
preia intrarea de la utilizator sub formă de șiruri sau cuvinte pe care utilizatorul dorește să le caute într-un anumit fișier. Comanda verifică apoi fișierul specificat de utilizator pentru acest model și apoi returnează liniile care se potrivesc cu modelul furnizat.
Face o treabă excelentă prin filtrarea conținutului unui fișier, ușurând astfel sarcina de a căuta un anumit conținut pe fișiere unice sau multiple simultan.
În acest articol, să trecem în revistă funcționarea sistemului grep
comandă cu câteva exemple practice în detaliu.
Opțiuni disponibile cu grep
comanda
Acestea sunt câteva dintre opțiunile fundamentale pe care le veți folosi frecvent cu grep
comanda.
Opțiune | Descriere |
-i | Pentru o căutare fără majuscule |
-r | Pentru a căuta recursiv toate fișierele din directorul specificat și subdirectoarele acestuia |
-c | Pentru a afișa numărul total de ori când apare un șir |
-v | Pentru a afișa liniile care nu se potrivesc |
-w | Filtrați pentru cuvântul respectiv folosit separat |
Folosind grep
comanda
grep
comanda este de obicei folosită cu conducta (|
) utilitate. Poate fi implementat cu shell pipe atunci când doriți să îl utilizați cu alte comenzi Linux. Cu toate că, grep
poate fi folosit si individual fara teava (|
) utilitate.
Să vedem câteva dintre sintaxele de bază ale grep
comandă cu și fără utilitarul conductei.
Permiteți-mi să vă arăt mai întâi exemplul de fișier text pe care îl voi folosi pentru a ilustra grep
comanda.
INDIA ESTE O TĂRĂ FRUMOSĂ A OAMENI IUBĂTORI DE PACE. India se bazează pe trei piloni ai legislativului, executivului și judiciar. India este o țară frumoasă a oamenilor care iubesc pacea. Indiei îi pasă de oameni, deoarece resursele sale coordonatele carteziene importanța tuturor coordonatelor carteziene. Următoarele sunt două rânduri goale. folosirea carului cu boi este o vedere comună în sat pentru treburile agrare. Acesta este sfârșitul fișierului eșantion.
grep
folosit cu teava ( | )utilitate
grep
comanda poate fi implementată împreună cu alte comenzi Linux folosind conductele shell. Ca, folosind pisică
comandă pentru a afișa conținutul fișierului, dar în același timp canalizarea ieșirii folosind grep
comandă pentru a afișa numai conținutul pe care doriți să-l vedeți. Acest lucru va fi mai clar când vom analiza exemplul.
Sintaxă:
[comanda] | grep [șir]
Exemplu:
pisica sample.txt | grep legislativ
Aici, am folosit pisică
comandă pentru a afișa câteva linii din fișierul „sample.txt”. Trebuie afișate doar acele rânduri care conțin cuvântul „legislativ” și ignoră restul rândurilor.
Ieșire:
gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislatura india se bazează pe trei piloni ai legislativului, executivului și judiciar. gaurav@ubuntu:~/workspace$
grep
folosit fără țeavă ( | )utilitate
grep
poate fi folosit chiar și direct ca o comandă individuală fără a utiliza conducta ( |
) utilitate.
Sintaxă:
grep [string_to_be_searched] [nume fișier]
Exemplu:
grep India sample.txt
Ieșire:
India este o țară frumoasă a oamenilor care iubesc pacea. Indiei îi pasă de oameni ca fiind resursa sa
Astfel, am folosit grep
comanda direct pentru a filtra liniile care conțin șirul „India” din fișierul text „sample.txt”.
Căutare care nu face distincție între majuscule și minuscule folosind grep
comanda
Linux este foarte precaut cu privire la diferența dintre majuscule și minuscule atunci când lansăm comenzile pe terminal. Acest lucru necesită ca utilizatorul să fie atent la cazul șirului introdus în comandă.
Să vedem asta printr-un exemplu.
grep pace sample.txt
În acest caz, nu vom obține o ieșire, deoarece nu există niciun cuvânt ca „pace” în fișierul exemplu. Avem cuvântul „Pace” cu „P” mare. Cuvântul este același, dar atunci când folosim grep
comandă fără nicio opțiune, caută potrivirea exactă în fișier, fără a ține cont de orice modificare a majusculei.
Pentru a evita această ambiguitate, puteți utiliza pur și simplu -i
opțiunea care spune literalmente grep
comanda „Uitați de cazul în care am pus șirul și doar căutați toate modelele care se potrivesc în fișier.”
Sintaxă:
grep -i [șir] [nume fișier]
Exemplu:
grep -i pace sample.txt
Ieșire:
INDIA ESTE O TĂRĂ FRUMOSĂ A OAMENI IUBĂTORI DE PACE. India este o țară frumoasă a oamenilor care iubesc pacea.
Toate liniile de potrivire sunt afișate indiferent de cazul în care se află șirul de potrivire.
Căutări recursive folosind grep
comanda
The -r
opțiunea va căuta toate fișierele dintr-un director și toate subdirectoarele sale care se potrivesc cu modelul de șir furnizat de utilizator în comandă.
Sintaxă:
grep -i -r [șir] [cale_fișier]
Exemplu:
grep -i -r tomcat /home/gaurav/workspace
Șirul de aici este „tomcat” și va fi căutat în spațiul de lucru al directorului. Toate subdirectoarele și fișierele din directorul „spațiu de lucru” vor fi, de asemenea, scanate pentru a se potrivi cu modelul de șir furnizat.
Ieșire:
./context_log.policy:// catalina.policy - Permisiunile politicii de securitate pentru Tomcat 7 ./context_log.policy:// Notă: dacă tomcat-juli.jar este în ${catalina.base} și nu în ${catalina.home }, ./context_log.policy:// grant codeBase „fișier:${catalina.base}/bin/tomcat-juli.jar” {..} ./context_log.policy:grant codeBase „fișier:${catalina.home” }/bin/tomcat-juli.jar" { ./context_log.policy: permisiunea java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - JAR Tomcat Bootstrap ./catalina.properties:# - JAR Tomcat API ./catalina.properties:# - JAR Tomcat ./catalina.properties:# - Obișnuit non-Tomcat JAR-uri ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties:# tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000 . /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml:
NOTĂ: În timp ce utilizați -r
opțiunea cu grep
trebuie să furnizăm calea fișierului și nu numele fișierului
Căutând cuvinte întregi numai cu grep
comanda
De multe ori, veți căuta un cuvânt, dar veți ajunge să vă populați terminalul cu liniile care se potrivesc, care conțin cuvântul potrivit, dar nu ca un cuvânt individual. Este posibil să vedeți rândurile care conțin câteva cuvinte a căror subparte este șirul pe care l-ați introdus.
Confundat cu asta? Nu vă faceți griji, este mult mai ușor de înțeles odată ce obțineți exemplul.
Exemplu:
Aici, vreau să caut un cuvânt individual „coș” și să afișez toate liniile care se potrivesc cu acest cuvânt în fișierul „sample.txt”.
grep -i cart sample.txt
Ieșire:
Coordonatele carteziene importanța tuturor coordonatelor carteziene. folosirea carului cu boi este o vedere obișnuită în sat pentru treburile agrare Căruța a dispărut când băiatul l-a lăsat liber.
În ieșire, puteți observa că cuvântul „cartezian” conține și cuvântul „cart” și, prin urmare, liniile care conțin cuvântul „cartezian” sunt de asemenea afișate, chiar dacă nu dorim să fie afișate.
Puteți folosi -w
opțiunea cu grep
comanda pentru a rezolva această ambiguitate.
Sintaxă:
grep -i -w [șir] [nume fișier]
Exemplu:
grep -i -w cart sample.txt
Ieșire:
folosirea carului cu boi este o vedere comună în sat pentru treburile agrare. Căruța a dispărut când băiatul a lăsat-o liber.
Acum, când ați folosit -w
opțiunea cu grep
veți obține doar rândurile în care cuvântul „cărucior” este folosit ca întreg.
Căutare inversată folosind grep
comanda
grep
comanda poate fi folosită și în sens invers. Putem folosi grep
comandă opusă ascunzând liniile care se potrivesc și afișând doar liniile în care potrivirea nu este găsită. Puteți face acest lucru folosind -v
opțiunea cu grep
comanda.
Sintaxă:
grep -i -v [șir] [nume fișier]
Exemplu:
grep -i -v resursă sample.txt
Ieșire:
INDIA ESTE O TĂRĂ FRUMOSĂ A OAMENI IUBĂTORI DE PACE. India se bazează pe trei piloni ai legislativului, executivului și judiciar. India este o țară frumoasă a oamenilor care iubesc pacea. coordonatele carteziene importanța tuturor coordonatelor carteziene. folosirea carului cu boi este o vedere comună în sat pentru treburile agrare. Acesta este sfârșitul fișierului eșantion.
În rezultat, toate celelalte linii sunt afișate, în afară de linia care conține cuvântul „resursă”.
Numărarea aparițiilor șirului de potrivire
Ieșirea lui grep
comanda este de obicei foarte lungă dacă datele din fișier sunt extinse. Cu cât sunt mai multe potriviri, cu atât sunt mai lungi ieșirile grep
comanda. Linux vă oferă o opțiune prin care puteți afișa numărul de apariții ale meciului.
Sintaxă:
grep -i -c [șir] [nume fișier]
Exemplu:
grep -i -c india sample.txt
Ieșire:
gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$
Aici, rezultatul este un număr care este numărul de apariții ale cuvântului „India” în fișierul sample.txt.
NOTĂ: Am folosit -i
opțiune în fiecare exemplu pentru a fi în siguranță cu problema sensibilității majusculelor. În cazul în care sunteți sigur de cazul cuvântului pe care îl căutați, atunci puteți omite în siguranță -i
opțiune.
Concluzie
Am învățat utilizările fundamentale ale grep
comandă pe sistemele Linux din acest tutorial. De asemenea, am învățat să afișăm conținut variat care se potrivește cel mai bine cerințelor noastre și să nu aglomeram terminalul cu o mulțime de linii. grep
comanda va fi cu siguranță o economie de timp dacă este utilizată pentru scanarea seturi de date mari.