Kuidas kasutada käsku Grep Linuxis

Grep käsu mõistmine koos praktiliste näidetega faili sisu hõlpsaks filtreerimiseks ja kuvamiseks

GREP tähistab 'Global Regular Expression Print'. See on kasulik Linuxi käsurea utiliit, mille abil saab otsida tekstirida, mis vastab kasutaja pakutavale mustrile.

grep võtab kasutajalt sisendi stringide või sõnade kujul, mida kasutaja soovib konkreetses failis otsida. Seejärel kontrollib käsk selle mustri jaoks kasutaja määratud faili ja tagastab seejärel read, mis vastavad antud mustrile.

See teeb suurepärast tööd, filtreerides faili sisu, muutes meie ülesande lihtsamaks konkreetse sisu otsimine ühest või mitmest failist korraga.

Selles artiklis vaatleme selle toimimist grep käsk koos mõne praktilise näitega üksikasjalikult.

Saadaval valikud koos grep käsk

Need on mõned põhilised valikud, mida te rakendusega sageli kasutate grep käsk.

VõimalusKirjeldus
-iTõstutundlikuks otsinguks
-rKõigi määratud kataloogis ja selle alamkataloogides olevate failide rekursiivne otsimine
-cStringi ilmumiskordade koguarvu kuvamiseks
-vMittevastavate joonte kuvamiseks
-wFilter selle konkreetse sõna jaoks, mida kasutatakse eraldi

Kasutades grep käsk

grep käsku kasutatakse tavaliselt toruga (|) utiliit. Seda saab rakendada shell-toruga, kui soovite seda kasutada koos mõne muu Linuxi käsuga. kuigi, grep saab kasutada ka eraldi ilma toruta (|) utiliit.

Vaatame mõnda põhisüntaksit grep käsk toruutiliidiga ja ilma.

Lubage mul esmalt näidata teile näidistekstifaili, mida ma selle illustreerimiseks kasutan grep käsk.

INDIA ON ILUS RAHUARMASTAVATE INIMESTE RIIK. India seisab kolmel seadusandliku, täidesaatva ja kohtuvõimu sambal. India on ilus rahuriik, kes armastab inimesi. India hoolib inimestest, kuna selle ressursi ristkoordinaadid on kõigi nn Descartes'i koordinaatide tähtsus. Järgmised kaks tühja rida. härjavankri kasutamine on külas tavaline nähtus agraartöödel. See on näidisfaili lõpp.

grep kasutatud toruga ( | )kasulikkust

grep käsku saab rakendada koos teiste Linuxi käskudega, kasutades shell-torusid. Näiteks kasutades kass käsk faili sisu kuvamiseks, kuid samal ajal väljundi ühendamiseks kasutades grep käsk, et kuvada ainult sisu, mida soovite näha. See on selgem, kui vaatame näidet läbi.

Süntaks:

[käsk] | grep [string]

Näide:

kassi näidis.txt | grep seadusandlik kogu

Siin olen kasutanud kass käsk, et kuvada mõned read failist „sample.txt”. Kuvatakse ainult need read, mis sisaldavad sõna „seadusandlik kogu”, ja ülejäänud ridu eiratakse.

Väljund:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep seadusandja india seisab kolmel seadusandliku, täidesaatva ja kohtuvõimu sambal. gaurav@ubuntu:~/tööruum$

grep kasutatud ilma toruta ( | )kasulikkust

grep saab kasutada isegi otse individuaalse käsuna ilma toru ( | ) utiliit.

Süntaks:

grep [otsitav_string] [failinimi]

Näide:

grep India sample.txt

Väljund:

India on ilus rahuriik, kes armastab inimesi. India hoolib inimestest kui oma ressursist

Seega olen kasutanud grep käsk otse, et filtreerida tekstifailist "sample.txt" read, mis sisaldavad stringi "India".

Tõstutundlik otsing, kasutades grep käsk

Linux on terminalis käskude käivitamisel tõstutundlikkuse suhtes väga ettevaatlik. See nõuab, et kasutaja oleks käsku sisestatud stringi puhul ettevaatlik.

Vaatame seda näite kaudu.

grep rahu näidis.txt

Sel juhul me väljundit ei saa, kuna näidisfailis pole sõna "rahu". Meil on sõna "rahu" suure "P" tähega. Sõna on sama, kuid kui me kasutame grep ilma ühegi valikuta, otsib see failist täpset vastet, jättes tähelepanuta muudatused tähesuuruses.

Selle ebaselguse vältimiseks võite lihtsalt kasutada -i valik, mis sõna otseses mõttes ütleb grep käsk "Unustage ära juhtum, mille ma stringi panin, ja otsige lihtsalt failist kõik sobivad mustrid."

Süntaks:

grep -i [string] [failinimi]

Näide:

grep -i rahu näidis.txt

Väljund:

INDIA ON ILUS RAHUARMASTAVATE INIMESTE RIIK. India on ilus rahuriik, kes armastab inimesi.

Kõik sobivad read kuvatakse olenemata sellest, millises käändes on sobiv string.

Rekursiivne otsing kasutades grep käsk

The -r valik otsib kõiki faile kataloogist ja kõigist selle alamkataloogidest, mis vastavad kasutaja käsus antud stringimustrile.

Süntaks:

grep -i -r [string] [faili tee]

Näide:

grep -i -r tomcat /home/gaurav/tööruum

Siin olev string on "kottkass" ja seda otsitakse kataloogi tööruumis. Kõiki tööruumi kataloogis olevaid alamkatalooge ja faile kontrollitakse samuti, et need vastaksid esitatud stringimustrile.

Väljund:

./context_log.policy:// catalina.policy – ​​Tomcat 7 turbepoliitika load ./context_log.policy:// Märkus. Kui tomcat-juli.jar asub kaustas ${catalina.base}, mitte asukohas ${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JAR-id ./catalina.properties:# - Tomcat API JAR-id ./catalina.properties:# - Tomcati JAR-id ./catalina.properties:# - Levinud mitte-Tomcat JAR-id ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catal:#ina tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache=500 /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

MÄRGE: Kui kasutate -r valik koos grep käsku peame esitama faili tee, mitte failinime

Tervete sõnade otsimine ainult rakendusega grep käsk

Sageli on nii, et otsite ühte sõna, kuid lõpuks täidate oma terminali vastavate ridadega, mis sisaldavad teie sobivat sõna, kuid mitte üksiku sõnana. Võite näha ridu, mis sisaldavad mõningaid sõnu, mille alamosa on teie sisestatud string.

Kas olete sellega segaduses? Ärge muretsege, seda on palju lihtsam mõista, kui saate näite.

Näide:

Siin tahan otsida üksikut sõna "käru" ja kuvada failis "sample.txt" kõik sellele sõnale vastavad read.

grep -i ostukorvi näidis.txt

Väljund:

Descartes'i koordinaatide tähtsus kõikidele Descartes'i koordinaatidele. härjakäru kasutamine on külas tavaline vaatepilt agraartöödel Käru läks kaduma, kuna poiss selle lahti jättis.

Väljundis on näha, et sõna "Cartesiaan" sisaldab ka sõna "käru" ja seega kuvatakse ka sõna "Cartesian" sisaldavad read, kuigi me ei soovi neid kuvada.

Saate kasutada -w valik koos grep käsk selle ebaselguse lahendamiseks.

Süntaks:

grep -i -w [string] [failinimi]

Näide:

grep -i -w ostukorvi näidis.txt

Väljund:

härjavankri kasutamine on külas tavaline nähtus agraartöödel. Käru läks kaduma, kuna poiss selle lahti jättis. 

Nüüd, kui olete kasutanud -w variant koos grep kuvatakse ainult need read, milles sõna "käru" on kasutatud tervikuna.

Pööratud otsing kasutades grep käsk

grep käsku saab kasutada ka vastupidiselt. Saame kasutada grep käsku vastupidiselt, peites vastavad read ja kuvades ainult need read, kus vastet ei leitud. Seda saate teha kasutades -v valik koos grep käsk.

Süntaks:

grep -i -v [string] [failinimi]

Näide:

grep -i -v ressursi näidis.txt

Väljund:

INDIA ON ILUS RAHUARMASTAVATE INIMESTE RIIK. India seisab kolmel seadusandliku, täidesaatva ja kohtuvõimu sambal. India on ilus rahuriik, kes armastab inimesi. Descartes'i koordinaadid kõigi th ristkoordinaatide tähtsus. härjavankri kasutamine on külas tavaline nähtus agraartöödel. See on näidisfaili lõpp.

Väljundis kuvatakse kõik muud read peale sõna 'ressurss' sisaldava rea.

Sobiva stringi esinemiste loendamine

väljund grep käsk on tavaliselt väga pikk, kui failis on palju andmeid. Mida rohkem vasteid, seda pikemad on väljundid grep käsk. Linux pakub teile valikut, kus saate kuvada vaste esinemiste arvu.

Süntaks:

grep -i -c [string] [failinimi]

Näide:

grep -i -c india näidis.txt

Väljund:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

Siin on väljundiks arv, mis on sõna „India” esinemiste arv failis sample.txt.

MÄRGE: Olen kasutanud -i võimalus igas näites olla tõstutundlikkuse probleemiga ohutu. Kui olete otsitava sõna suur- ja suurtähtedes kindel, võite selle julgelt välja jätta -i valik.

Järeldus

Oleme õppinud selle põhilisi kasutusviise grep käsk selles õpetuses Linuxi süsteemides. Samuti õppisime kuvama erinevat sisu, mis vastab meie vajadustele kõige paremini ja mitte täitma terminali järjekordadega. grep käsk säästab kindlasti aega, kui seda kasutatakse suurte andmehulkade skannimiseks.