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õimalus | Kirjeldus |
-i | Tõstutundlikuks otsinguks |
-r | Kõigi määratud kataloogis ja selle alamkataloogides olevate failide rekursiivne otsimine |
-c | Stringi ilmumiskordade koguarvu kuvamiseks |
-v | Mittevastavate joonte kuvamiseks |
-w | Filter 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.