Cum să utilizați comanda Grep în Linux

Î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țiuneDescriere
-iPentru o căutare fără majuscule
-rPentru a căuta recursiv toate fișierele din directorul specificat și subdirectoarele acestuia
-cPentru a afișa numărul total de ori când apare un șir
-vPentru a afișa liniile care nu se potrivesc
-wFiltraț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.