Halimbawa ng Paggamit Ng Ang Linux grep Command

Panimula

Ang Linux grep command ay ginagamit bilang isang paraan para sa pag-filter ng input.

Ang GREP ay kumakatawan sa Global Regular Expression Printer at samakatuwid ay upang gamitin ito nang epektibo, dapat kang magkaroon ng ilang kaalaman tungkol sa mga regular na expression.

Sa artikulong ito, ipapakita ko sa iyo ang isang bilang ng mga halimbawa na tutulong sa iyo na maunawaan ang grep command.

01 ng 09

Paano Upang Maghanap Para Sa Isang String Sa Isang File Paggamit ng GREP

Ang Linux grep Command.

Isipin mayroon kang isang tekstong file na tinatawag na mga aklat na may pamagat ng mga sumusunod na aklat ng mga bata:

Upang mahanap ang lahat ng mga aklat na may salitang "Ang" sa titulo ay gagamitin mo ang sumusunod na syntax:

grep Ang mga libro

Ang mga sumusunod na resulta ay ibabalik:

Sa bawat kaso, ang salitang "Ang" ay i-highlight.

Tandaan na ang paghahanap ay sensitibo sa kaso kaya kung ang isa sa mga pamagat ay may "ang" sa halip na "Ang" pagkatapos ay hindi ito ibinalik.

Upang huwag pansinin ang kaso maaari mong idagdag ang sumusunod na switch:

grep the books - signore-case

Maaari mo ring gamitin ang -i lumipat tulad ng sumusunod:

grep -i ang mga libro

02 ng 09

Maghanap Para sa Isang String Sa isang File Paggamit ng Wildcard

Ang command ng grep ay napakalakas. Maaari mong gamitin ang maraming mga diskarte sa pagtutugma ng pattern upang mag-filter ng mga resulta.

Sa halimbawang ito, ipapakita ko sa iyo kung paano maghanap ng string sa isang file gamit ang mga wildcard .

Isipin mayroon kang isang file na tinatawag na mga lugar na may sumusunod na mga pangalan ng lugar ng Scottish:

aberdeen

aberystwyth

aberoll

inverurie

inverness

newburgh

bagong usa

bagong galloway

glasgow

edinburgh

Kung nais mong mahanap ang lahat ng mga lugar na may inver sa pangalan gamitin ang sumusunod na syntax:

grep inver * places

Ang asterisk (*) wildcard ay kumakatawan sa 0 o marami. Kaya kung mayroon kang isang lugar na tinatawag na inver o isang lugar na tinatawag na inverness pagkatapos ay parehong ibabalik.

Ang isa pang wildcard na magagamit mo ay ang panahon (.). Maaari mong gamitin ito upang tumugma sa isang solong titik.

grep inver.r places

Ang itaas na utos ay makakahanap ng mga lugar na tinatawag na inverurie at inverary ngunit hindi makahanap ng invereerie dahil maaari lamang maging isang wildcard sa pagitan ng dalawang r bilang itinuturo ng isang panahon.

Ang wildcard na panahon ay kapaki-pakinabang ngunit maaari itong maging sanhi ng mga problema kung mayroon kang isa bilang bahagi ng teksto na iyong hinahanap.

Halimbawa tingnan ang listahan ng mga pangalan ng domain na ito

Upang mahanap ang lahat ng about.coms maaari mo lamang maghanap gamit ang sumusunod na syntax:

grep * tungkol sa * domainname

Ang utos sa itaas ay babagsak kung ang listahan ay naglalaman ng sumusunod na pangalan dito:

Maaari mong, kaya, subukan ang mga sumusunod na syntax:

grep * about.com domainnames

Ito ay gagana ok maliban kung may isang domain na may sumusunod na pangalan:

aboutycom.com

Upang talagang hanapin ang terminong tungkol sa.com kailangan mong makatakas sa tuldok tulad ng sumusunod:

grep * tungkol sa \ .com domainnames

Ang pangwakas na wildcard upang ipakita sa iyo ang marka ng tandang na kumakatawan sa zero o isang character.

Halimbawa:

grep? ber placenames

Ang utos sa itaas ay babalik aberdeen, aberystwyth o kahit berwick.

03 ng 09

Maghanap Para sa Mga Strings Sa Simula At Pagtatapos Ng Linya Paggamit ng grep

Ang karat (^) at ang dolyar ($) na simbolo ay nagbibigay-daan sa iyo upang maghanap ng mga pattern sa simula at wakas ng mga linya.

Isipin mayroon kang isang file na tinatawag na football na may mga sumusunod na mga pangalan ng koponan:

Kung nais mong mahanap ang lahat ng mga koponan na nagsimula sa Manchester gagamitin mo ang sumusunod na syntax:

grep ^ Manchester teams

Ang utos sa itaas ay babalik sa Manchester City at Manchester United ngunit hindi FC United Of Manchester.

Bilang kahalili maaari mong mahanap ang lahat ng mga koponan na nagtatapos sa Estados gamit ang sumusunod na syntax:

grep United teams

Ang utos sa itaas ay ibabalik ang Manchester United at Newcastle United ngunit hindi FC United Of Manchester.

04 ng 09

Nagbibilang Ang Bilang Ng Mga Tugma Paggamit ng grep

Kung ayaw mong ibalik ang mga aktwal na linya na tumutugma sa isang pattern na gumagamit ng grep ngunit gusto mo lamang malaman kung gaano karami ang maaari mong gamitin ang sumusunod na syntax:

grep -c pattern inputfile

Kung ang pattern ay naitugmang dalawang beses pagkatapos ay ang numero 2 ay ibabalik.

05 ng 09

Paghahanap ng Lahat ng Mga Tuntunin na Hindi Tumutugma gamit ang grep

Isipin mayroon kang listahan ng mga pangalan ng lugar sa mga bansa na nakalista gaya ng sumusunod:

Maaaring napansin mo na ang colwyn bay ay walang bansa na nauugnay dito.

Upang maghanap ng lahat ng mga lugar na may isang bansa maaari mong gamitin ang sumusunod na syntax:

grep land $ places

Ang mga resulta ay babalik sa lahat ng mga lugar maliban sa colwyn bay.

Ito ay malinaw lamang ay gumagana para sa mga lugar na dulo sa lupa (bahagya siyentipiko).

Maaari mong baligtarin ang piliin gamit ang sumusunod na syntax:

grep -v land $ places

Makikita nito ang lahat ng mga lugar na hindi nagtatapos sa lupa.

06 ng 09

Paano Upang Makahanap ng mga Linya ng Empty Sa Mga File Paggamit ng grep

Isipin mayroon kang isang input file na ginagamit ng isang third party application na hihinto sa pagbabasa ng file kapag nahahanap ang isang walang laman na linya tulad ng sumusunod:

Kapag ang application ay nakakakuha sa linya pagkatapos liverpool ito ay titigil sa pagbabasa ng kahulugan colwyn bay ay hindi nakuha ganap.

Maaari mong gamitin ang grep upang maghanap ng mga blangko na linya kasama ang sumusunod na syntax:

grep ^ $ places

Sa kasamaang palad na ito ay hindi partikular na kapaki-pakinabang dahil ito lamang ay nagbabalik ng mga blangko na linya.

Maaari kang siyempre makakuha ng isang bilang ng bilang ng mga blangko na linya bilang isang tseke upang makita kung ang file ay may bisa tulad ng sumusunod:

grep -c ^ $ places

Gayunpaman ay mas kapaki-pakinabang na malaman ang mga numero ng linya na may isang blangko na linya upang maaari mong palitan ang mga ito. Maaari mo itong gawin sa sumusunod na command:

grep -n ^ $ places

07 ng 09

Paano Upang Maghanap Para Sa Mga Strings Ng Uppercase Or Lowercase Characters Paggamit ng grep

Paggamit ng grep maaari mong matukoy kung aling mga linya sa isang file ay may mga uppercase character gamit ang sumusunod na syntax:

grep '[AZ]' filename

Ang mga parisukat na braket [] ay nagpapahintulot sa iyo na matukoy ang hanay ng mga character. Sa halimbawa sa itaas ito ay tumutugma sa anumang karakter na nasa pagitan ng A at Z.

Samakatuwid upang tumugma sa mga maliliit na character maaari mong gamitin ang sumusunod na syntax:

grep '[az]' filename

Kung nais mong tumugma lamang ang mga titik at hindi numerik o iba pang mga simbolo maaari mong gamitin ang sumusunod na syntax:

grep '[a-zA-Z]' na filename

Maaari mong gawin ang parehong sa mga numero tulad ng sumusunod:

grep '[0-9]' filename

08 ng 09

Hinahanap Para sa Pag-uulit ng Pattern Paggamit ng grep

Maaari mong gamitin ang curly brackets {} upang maghanap ng isang paulit-ulit na pattern.

Isipin mayroon kang isang file na may mga numero ng telepono tulad ng sumusunod:

Alam mo na ang unang bahagi ng numero ay kailangang tatlong digit at gusto mong mahanap ang mga linya na hindi tumutugma sa pattern na ito.

Mula sa nakaraang halimbawa alam mo na ang [0-9] ay nagbabalik ng lahat ng mga numero sa isang file.

Sa pagkakataong ito gusto namin ang mga linya na nagsisimula sa tatlong numero na sinusundan ng isang gitling (-). Magagawa mo ito sa sumusunod na syntax:

grep "^ [0-9] [0-9] [0-9] -" mga numero

Tulad ng alam natin mula sa mga naunang halimbawa ang karat (^) ay nangangahulugan na ang linya ay dapat magsimula sa sumusunod na pattern.

Ang [0-9] ay maghanap ng anumang numero sa pagitan ng 0 at 9. Bilang ito ay kasama ng tatlong beses tumutugma ito 3 mga numero. Sa wakas may isang gitling upang ipahiwatig na ang isang gitling ay dapat magtagumpay sa tatlong numero.

Sa pamamagitan ng paggamit ng mga kulot na kurbatang maaari mong gawing mas maliit ang paghahanap tulad ng sumusunod:

grep "^ [0-9] \ {3 \} -" mga numero

Ang slash ay nakaligtas sa {braket upang ito ay gumagana bilang bahagi ng regular na expression ngunit sa kakanyahan kung ano ang sinasabi nito ay [0-9] {3} na nangangahulugan ng anumang numero sa pagitan ng 0 at 9 ng tatlong beses.

Ang mga kulot na kurbatang ay maaari ring gamitin gaya ng sumusunod:

{5,10}

{5,}

Ang {5,10} ay nangangahulugan na ang karakter na hinahanap ay dapat na paulit-ulit na hindi bababa sa 5 beses ngunit hindi hihigit sa 10 samantalang ang {5,} ay nangangahulugan na ang karakter ay kailangang paulit-ulit nang hindi bababa sa 5 beses ngunit maaaring higit pa sa iyon.

09 ng 09

Paggamit ng Output Mula sa Iba Pang Mga Utos Paggamit ng grep

Sa ngayon kami ay tumingin sa pagtutugma ng pattern sa loob ng mga indibidwal na mga file ngunit maaaring gamitin ng grep ang output mula sa iba pang mga command bilang input para sa pagtutugma ng pattern.

Ang isang mahusay na halimbawa ng mga ito ay ang paggamit ng ps command na naglilista ng mga aktibong proseso.

Halimbawa patakbuhin ang sumusunod na command:

ps -ef

Ang lahat ng mga tumatakbong proseso sa iyong system ay ipapakita.

Maaari mong gamitin ang grep upang maghanap para sa isang partikular na proseso ng pagpapatakbo tulad ng sumusunod:

ps -ef | grep firefox

Buod

Ang grep command ay isang pangunahing Linux command at ito ay isa na ay nagkakahalaga ng pag-aaral dahil ito ay gawing mas madali ang iyong buhay kapag naghahanap ng mga file at proseso kapag gumagamit ng terminal.