Pambuka
Printah grep Linux digunakake minangka cara kanggo nyaring input.
GREP stands for Global Regular Expression Printer lan kanthi mangkono kanggo nggunakake efektif, sampeyan kudu duwe kawruh babagan ekspresi reguler.
Ing artikel iki, aku bakal nuduhake akeh conto sing bakal mbantu sampeyan mangerteni perintah grep.
01 saka 09
Cara Nelusuri Kanggo Nganggo String Ing File Nggunakake GREP
Mbayangno sampeyan duwe file teks sing disebut buku karo judhul buku anak-anak ing ngisor iki:
- Robin Hood
- Sepedhene Hood
- Peter Pan
- Goldilocks lan Bears Three
- Salju Putih lan Pitu Dwarfs
- Pinnochio
- Kucing ing Topi
- Babi Tiga Little
- Ing Gruffalo
- Charlie lan Pabrik Coklat
Kanggo nemokake kabeh buku nganggo tembung "Ing" ing judhul sampeyan bakal nggunakake sintaks:
grep Books
Hasil ing ngisor iki bakal dikembalikan:
- Goldilocks lan Bears Three
- Salju Putih lan Pitu Dwarfs
- Kucing ing Topi
- Babi Tiga Little
- Ing Gruffalo
- Charlie lan Pabrik Coklat
Ing saben huruf, tembung "Ing" bakal disorot.
Elinga yen panelusuran iku cilik sensitif supaya yen siji saka judhul wis "ing" tinimbang "Ing" banjur ora bakal bali.
Kanggo nglirwakake kasus kasebut sampeyan bisa nambah saklar:
grep the books - signore-case
Sampeyan uga bisa nggunakake switch -i minangka nderek:
grep -i the books
02 saka 09
Telusuri Kanggo Senar Ing File Nggunakake Wildcards
Perintah grep banget kuat. Sampeyan bisa nggunakake akeh teknik pencocokan pola kanggo nyaring asil.
Ing conto iki, aku bakal nuduhake sampeyan carane nelusur senar ing file nggunakake wildcards .
Mbayangno sampeyan duwe file sing disebut panggonan kanthi jeneng panggonan Scottish ing ngisor iki:
aberdeen
inggil
aberlour
inverurie
inverness
Newburgh
rusa anyar
balung anyar
glasgow
edinburgh
Yen sampeyan pengin nemokake kabeh panggonan kanthi inver ing jeneng, gunakake sintaks ing ngisor iki:
grep inver * places
Aterisk (*) wildcard stands for 0 utawa akeh. Mulane yen sampeyan duwe panggonan sing disebut inver utawa panggonan sing disebut inverness banjur loro bakal bali.
Kertu wildcard sing bisa digunakake yaiku periode (.). Sampeyan bisa nggunakake iki kanggo cocog karo aksara siji.
grep inver.r places
Perintah ndhuwur bakal nemokake panggonan sing disebut inverurie lan inverary nanging ora nemokake invereerie amarga ana mung bisa dadi siji wildcard antarane loro r's minangka dina sing diwatesi.
Ing wildcard periode kasebut migunani nanging bisa nyebabake masalah yen sampeyan duwe salah siji bagéan saka teks sing sampeyan nggoleki.
Contone katon ing dhaptar jeneng domain iki
- linux.about.com
- pcsupport.about.com
- mp3.about.com
- minecraft.about.com
- androidgames.about.com
- netforbeginners.about.com
- everydaylinuxuser.com
- google.co.uk
- google.au
- langsung.gov.uk
Kanggo nemokake kabeh about.coms sampeyan bisa nelusuri nggunakake sintaks iki:
grep * about * domainname
Perintah ing dhuwur bakal mudhun yen daftar sing ana ing ngisor iki:
- everydaylinuxuser.com/about.html
Mulane sampeyan bisa nyoba sintaks ngisor iki:
grep * about.com domain jeneng
Iki bakal bisa apik kajaba ana domain kanthi jeneng ngisor iki:
aboutycom.com
Kanggo nemen nggoleki istilah about.com sampeyan kudu ngluwari titik kasebut kaya mangkene:
grep * babagan domain .com
Ing wildcard pungkasan kanggo nuduhake sampeyan tandha pitakonan sing tegese nol utawa siji karakter.
Tuladhane:
grep?
Panguwasa ing ndhuwur bakal ngasilake aberdeen, aberystwyth utawa malah berwick.
03 saka 09
Telusuri Strings Ing Awal lan Akhir Line Nggunakake grep
Carat (^) lan simbol dollar ($) ngidini sampeyan nggolek pola ing awal lan pungkasan garis.
Mbayangno sampeyan duwe file sing disebut bal-balan kanthi jeneng tim ing ngisor iki:
- Blackpool
- Liverpool
- Manchester City
- Leicester City
- Manchester United
- Newcastle United
- FC United Of Manchester
Yen sampeyan pengin nemokake kabeh tim sing wiwit karo Manchester sampeyan bakal nggunakake sintaks:
tim Manchester
Panguwasa ing ndhuwur bakal bali menyang Manchester City lan Manchester United nanging ora dadi FC United Of Manchester.
Utawa sampeyan bisa nemokake kabeh tim sing endi karo United nggunakake sintaks iki:
grep United teams
Panguwasa ing ndhuwur bakal ngalahake Manchester United lan Newcastle United nanging ora FC United Of Manchester.
04 saka 09
Ngitung Jumlah Matches Nggunakake grep
Yen sampeyan ora pengin bali garis nyata sing cocog karo pola nggunakake grep nanging sampeyan mung pengin ngerti carane akeh ana sampeyan bisa nggunakake sintaks:
grep -c pattern inputfile
Yen pola kasebut dicocogake kaping pindho banjur nomer 2 bakal dibalekake.
05 saka 09
Nemokake Kabeh Katentuan Sing Ora Cocokake nggunakake grep
Mbayangno sampeyan duwe dhaptar jeneng panggonan karo negara sing didaftar ing ngisor iki:
- aberdeen scotland
- glasgow scotland
- liverpool england
- colwyn bay
- london england
Sampeyan bisa uga ngerteni yen teluk colwyn ora ana negara sing digandhengake.
Kanggo nggolèki kabeh panggonan ing negara sampeyan bisa nggunakake sintaks iki:
grep land $ places
Asile asil bakal kabeh panggonan kajaba kanggo colwyn teluk.
Iki temenan mung dienggo kanggo panggonan kang pungkasan ing tanah (meh ora ilmiah).
Sampeyan bisa mbatalake pilih nggunakake sintaks iki:
grep -v land $ places
Iki bakal nemokake kabeh panggonan sing durung rampung karo tanah.
06 saka 09
Cara Nggoleki Garis Empuk Ing File Nganggo grep
Mbayangno sampeyan duwe file input sing digunakake dening aplikasi pihak katelu sing mandheg maca file kasebut nalika nemokake baris kosong kaya mangkene:
- aberdeen scotland
- inverness scotland
- liverpool england
- wales colwyn bay
Nalika aplikasi nemu baris sawise liverpool bakal mandheg maca makna colwyn teluk ora kejawab kanthi bener.
Sampeyan bisa nggunakake grep kanggo nggoleki garis kosong nganggo sintaks iki:
grep ^ $ places
Sayange iki ora migunani amarga mung ngasilake garis kosong.
Sampeyan bisa mesthi njaluk count jumlah baris kosong minangka mriksa kanggo ndeleng manawa file kasebut bener kaya ing ngisor iki:
grep -c ^ $ places
Nanging bakal luwih migunani kanggo mangerteni nomer baris sing duwe baris kosong supaya sampeyan bisa ngganti. Sampeyan bisa nindakake iku kanthi printah ing ngisor iki:
grep -n ^ $ places
07 saka 09
Cara Nelusuri Kanggo Strings Huruf Besar huruf gedhe utawa ngisor Nganggo grep
Nggunakake grep sampeyan bisa nemtokake manawa garis ing file duwe aksara gedhe nggunakake sintaks iki:
grep '[AZ]' jeneng berkas
Tanda kurung [] supaya sampeyan nemtokake sawetara karakter. Ing conto ndhuwur iku cocog karo karakter sing ana antarane A lan Z.
Mulane kanggo cocog aksara cilik sampeyan bisa nggunakake sintaks iki:
grep '[az]' filename
Yen sampeyan pengin cocog mung huruf lan ora numerik utawa simbol liyane, sampeyan bisa nggunakake sintaks iki:
grep '[a-zA-Z]' jeneng berkas
Sampeyan bisa nindakake padha karo angka kaya ing ngisor iki:
grep '[0-9]' jeneng berkas
08 saka 09
Looking For Patterns Repeating Using grep
Sampeyan bisa nggunakake kurung kurung {} kanggo nggolèki pola mbaleni.
Mbayangno sampeyan duwe file nganggo nomer telpon minangka nderek:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
Sampeyan ngerti pérangan pisanan nomer kudu dadi telung digit lan sampeyan pengin nggoleki garis sing ora cocog karo pola iki.
Saka conto sadurungé sampeyan ngerti yèn [0-9] ngasilake kabeh nomer ing sawijining file.
Ing conto iki kita pengin garis sing diwiwiti kanthi telung angka sing diikuti karo hyphen (-). Sampeyan bisa nindakake kanthi nggunakake sintaks iki:
grep "^ [0-9] [0-9] [0-9] -" angka
Minangka kita ngerti saka conto sadurunge karat (^) tegese baris kudu diwiwiti karo pola ing ngisor iki.
[0-9] bakal nemokake nomer antarane 0 lan 9. Minangka iki kalebu kaping telu iku cocog karo 3 nomer. Akhire ana tanda hubung kanggo nudhuhake yen hyphen kudu nggayuh angka telu kasebut.
Kanthi nggunakake kurung kriting sampeyan bisa nggawe panelusuran luwih cilik kaya ing ngisor iki:
grep "^ [0-9] \ {3 \} -" angka
Slash mlayu ing {krenjang supaya bisa dianggo minangka bagian saka ekspresi reguler nanging ing tegese apa sing diucapake yaiku [0-9] {3} sing tegese nomer antarane 0 lan 9 telu.
Kurung kurung uga bisa digunakake minangka ing ngisor iki:
{5,10}
{5,}
{5,10} tegese karakter sing dituntut kudu diulang sekurang-kurang 5 kaping nanging ora luwih saka 10 dene {5,} tegese karakter kudu diulang paling ora 5 kaping nanging bisa luwih saka iku.
09 saka 09
Nggunakake Output Saka Perintah liyane Nggunakake grep
Mangkono adoh kita nyawang pola cocog ing file individu nanging grep bisa nggunakake output saka perintah liyane minangka input kanggo pencocokan pola.
Conto gedhe iki nggunakake perintah ps sing ndaptar proses aktif.
Contone, nglakoni perintah ngisor iki:
ps -ef
Kabeh pangolahan sing mlaku ing sistem sampeyan bakal ditampilake.
Sampeyan bisa nggunakake grep kanggo nggoleki proses mlaku tartamtu kaya mangkene:
ps -ef | grep firefox