Kā lietot Grep komandu operētājsistēmā Linux

Izpratne par komandu grep ar praktiskiem piemēriem, lai viegli filtrētu un parādītu faila saturu

GREP apzīmē “Global Regular Expression Print”. Tā ir noderīga komandrindas utilīta, ko nodrošina Linux, lai meklētu teksta rindiņu, kas atbilst lietotāja sniegtajam modelim.

grep ņem no lietotāja ievadi virkņu vai vārdu veidā, kurus lietotājs vēlas meklēt noteiktā failā. Pēc tam komanda pārbauda lietotāja norādīto failu šim modelim un pēc tam atgriež rindas, kas atbilst sniegtajam modelim.

Tas veic lielisku darbu, filtrējot faila saturu, tādējādi atvieglojot mūsu uzdevumu meklēt noteiktu saturu vienā vai vairākos failos vienlaikus.

Šajā rakstā apskatīsim, kā darbojas grep komandu ar dažiem praktiskiem piemēriem.

Iespējas, kas pieejamas ar grep komandu

Šīs ir dažas no pamata iespējām, kuras jūs bieži izmantosit kopā ar grep komandu.

OpcijaApraksts
-iMeklēšanai, kas nav reģistrjutīga
-rLai rekursīvi meklētu visus failus norādītajā direktorijā un tā apakšdirektorijās
-cLai parādītu kopējo virknes parādīšanās reižu skaitu
-vLai parādītu neatbilstošās līnijas
-wFiltrs šim konkrētajam vārdam, ko lieto atsevišķi

Izmantojot grep komandu

grep komandu parasti izmanto ar cauruli (|) lietderība. To var ieviest ar čaulas cauruli, ja vēlaties to izmantot ar dažām citām Linux komandām. Lai gan, grep var izmantot arī atsevišķi bez caurules (|) lietderība.

Apskatīsim dažas pamata sintakses grep komanda ar un bez caurules utilīta.

Vispirms parādīšu teksta faila paraugu, ko izmantošu, lai ilustrētu grep komandu.

INDIJA IR SKAISTA MIERU MĪLOŠU CILVĒKU VALSTS. Indija balstās uz trim likumdošanas, izpildvaras un tiesu varas pīlāriem. Indija ir skaista miera valsts, kas mīl cilvēkus. Indija rūpējas par cilvēkiem, jo ​​tās resurss ir Dekarta koordinātas visu th Dekarta koordinātas nozīme. Tālāk ir divas tukšas rindas. vēršu pajūgu izmantošana ciematā ir ierasta parādība agrārajos darbos. Šīs ir parauga faila beigas.

grep izmanto ar cauruli ( | )lietderība

grep komandu var ieviest kopā ar citām Linux komandām, izmantojot čaulas caurules. Piemēram, izmantojot kaķis komanda, lai parādītu faila saturu, bet tajā pašā laikā ievadītu izvadi, izmantojot grep komandu, lai parādītu tikai to saturu, kuru vēlaties redzēt. Tas būs skaidrāks, kad apskatīsim piemēru.

Sintakse:

[komanda] | grep [string]

Piemērs:

kaķa paraugs.txt | grep likumdevējs

Šeit es izmantoju kaķis komandu, lai parādītu dažas rindiņas no faila “sample.txt”. Jāattēlo tikai tās rindas, kurās ir vārds “likumdevējs”, un pārējās rindas tiek ignorētas.

Izvade:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature india balstās uz trim likumdevēja, izpildvaras un tiesu varas pīlāriem. gaurav@ubuntu:~/workspace$

grep lietots bez caurules ( | )lietderība

grep var pat izmantot tieši kā atsevišķu komandu, neizmantojot cauruli ( | ) lietderība.

Sintakse:

grep [virkne, kas_jāmeklē] [faila nosaukums]

Piemērs:

grep Indija paraugs.txt

Izvade:

Indija ir skaista miera valsts, kas mīl cilvēkus. Indija rūpējas par cilvēkiem kā savu resursu

Tādējādi esmu izmantojis grep komandu tieši, lai no teksta faila “sample.txt” filtrētu rindas, kurās ir virkne “Indija”.

reģistrjutīga meklēšana, izmantojot grep komandu

Linux ir ļoti piesardzīgs attiecībā uz reģistrjutību, kad mēs aktivizējam komandas terminālī. Tas prasa, lai lietotājs būtu uzmanīgs attiecībā uz komandā ievietotās virknes reģistru.

Apskatīsim to ar piemēru.

grep miera paraugs.txt

Šajā gadījumā mēs nesaņemsim izvadi, jo parauga failā nav vārda “miers”. Mums ir vārds "Miers" ar lielo "P". Vārds ir tas pats, bet, kad mēs lietojam grep komanda bez jebkādas opcijas, tā meklē precīzu atbilstību failā, neņemot vērā izmaiņas burtu reģistros.

Lai izvairītos no šīs neskaidrības, varat vienkārši izmantot -i opcija, kas burtiski stāsta grep komandu "aizmirstiet par gadījumu, kad esmu ievietojis virkni, un vienkārši meklējiet failā visus atbilstošos modeļus."

Sintakse:

grep -i [virkne] [faila nosaukums]

Piemērs:

grep -i miera paraugs.txt

Izvade:

INDIJA IR SKAISTA MIERU MĪLOŠU CILVĒKU VALSTS. Indija ir skaista miera valsts, kas mīl cilvēkus.

Visas atbilstošās rindas tiek parādītas neatkarīgi no gadījuma, kurā atrodas atbilstošā virkne.

Rekursīvā meklēšana, izmantojot grep komandu

The -r opcija meklēs visus failus direktorijā un visos tā apakšdirektorijos, kas atbilst virknes modelim, ko lietotājs norādījis komandā.

Sintakse:

grep -i -r [virkne] [faila_ceļš]

Piemērs:

grep -i -r runcis /home/gaurav/workspace

Virkne šeit ir “runcis”, un tā tiks meklēta direktoriju darbvietā. Tiks skenēti arī visi apakšdirektoriji un faili direktorijā “darbvietas”, lai tie atbilstu norādītajam virknes modelim.

Izvade:

./context_log.policy:// catalina.policy — Tomcat 7 drošības politikas atļaujas ./context_log.policy:// Piezīme: ja tomcat-juli.jar atrodas ${catalina.base}, nevis ${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 ./catalina.properties:# - Tomcat API JAR ./catalina.properties:# - Tomcat JAR ./catalina.properties:# - Bieži vien Tomcat JAR ./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=5.cache0 /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

PIEZĪME: Lietojot -r opcija ar grep komanda mums ir jānorāda faila ceļš, nevis faila nosaukums

Visu vārdu meklēšana tikai ar grep komandu

Daudzas reizes jūs meklēsit vienu vārdu, bet galu galā aizpildīsit savu termināli ar atbilstošām rindiņām, kas satur atbilstošo vārdu, bet ne kā atsevišķu vārdu. Jūs varat redzēt rindas, kurās ir daži vārdi, kuru apakšdaļa ir jūsu ievadītā virkne.

Vai esat sajaukts ar šo? Neuztraucieties, to ir daudz vieglāk saprast, kad esat ieguvis piemēru.

Piemērs:

Šeit es vēlos meklēt atsevišķu vārdu “grozs” un parādīt visas rindiņas, kas atbilst šim vārdam failā “sample.txt”.

grep -i groza paraugs.txt

Izvade:

Dekarta koordinātas nozīme visām Dekarta koordinātām. vēršu pajūgu izmantošana ciematā ir ierasta parādība agrārajos darbos. Rati pazuda, jo zēns tos atstāja brīvus.

Izvadē var novērot, ka vārds “Dekarta” satur arī vārdu “grozi”, un līdz ar to tiek parādītas arī rindas, kas satur vārdu “Dekarta”, lai gan mēs nevēlamies, lai tās tiktu parādītas.

Jūs varat izmantot -w opcija ar grep komanda, lai atrisinātu šo neskaidrību.

Sintakse:

grep -i -w [virkne] [faila nosaukums]

Piemērs:

grep -i -w groza paraugs.txt

Izvade:

vēršu pajūgu izmantošana ciematā ir ierasta parādība agrārajos darbos. Rati pazuda, jo zēns tos atstāja vaļīgu. 

Tagad, kad esat izmantojis -w variants ar grep jūs iegūsit tikai tās rindas, kurās vārds “grozi” ir lietots kopumā.

Apgrieztā meklēšana, izmantojot grep komandu

grep komandu var izmantot arī apgrieztā veidā. Mēs varam izmantot grep komandu pretēji, slēpjot atbilstošās rindas un parādot tikai tās rindas, kurās atbilstība nav atrasta. To var izdarīt, izmantojot -v opcija ar grep komandu.

Sintakse:

grep -i -v [virkne] [faila nosaukums]

Piemērs:

grep -i -v resursa paraugs.txt

Izvade:

INDIJA IR SKAISTA MIERU MĪLOŠU CILVĒKU VALSTS. Indija balstās uz trim likumdošanas, izpildvaras un tiesu varas pīlāriem. Indija ir skaista miera valsts, kas mīl cilvēkus. Dekarta koordinātas visu th Dekarta koordinātas nozīme. vēršu pajūgu izmantošana ciematā ir ierasta parādība agrārajos darbos. Šīs ir parauga faila beigas.

Izvadē tiek parādītas visas pārējās rindas, izņemot rindu, kurā ir vārds “resurss”.

Atbilstošās virknes gadījumu skaitīšana

Izvade no grep komanda parasti ir ļoti gara, ja failā ir daudz datu. Jo vairāk sakritību, jo garākas ir izejas grep komandu. Linux nodrošina opciju, kurā varat parādīt atbilstības gadījumu skaitu.

Sintakse:

grep -i -c [virkne] [faila nosaukums]

Piemērs:

grep -i -c Indijas paraugs.txt

Izvade:

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

Šeit izvade ir skaitlis, kas ir vārda “Indija” gadījumu skaits failā sample.txt.

PIEZĪME: Esmu izmantojis -i iespēja katrā piemērā, lai tikai būtu droši saistībā ar reģistrjutīguma problēmu. Ja esat pārliecināts par meklētā vārda reģistru, varat droši izlaist -i opciju.

Secinājums

Mēs esam iemācījušies pamata lietojumus grep komandu Linux sistēmās šajā apmācībā. Mēs arī iemācījāmies attēlot dažādu saturu, kas vislabāk atbilst mūsu prasībām un nepārblīvēt termināli ar daudzām rindām. grep komanda noteikti ietaupīs laiku, ja to izmantos lielu datu kopu skenēšanai.