Cyflwyniad
Defnyddir gorchymyn grep Linux fel dull ar gyfer hidlo mewnbwn.
Mae GREP yn sefyll ar gyfer Argraffydd Mynegiant Rheolaidd Byd-eang ac felly er mwyn ei ddefnyddio'n effeithiol, dylech gael rhywfaint o wybodaeth am ymadroddion rheolaidd.
Yn yr erthygl hon, byddaf yn dangos nifer o enghreifftiau i chi a fydd yn eich helpu i ddeall y gorchymyn grep.
01 o 09
Sut i Chwilio Am String Mewn Ffeil Gan ddefnyddio GREP
Dychmygwch fod gennych ffeil destun o'r enw llyfrau gyda'r teitlau llyfrau plant canlynol:
- Robin Hood
- Hugan Fach Goch
- Peter Pan
- Goldilocks A The Three Bears
- Gwyn Eira A Saith Dwarfs
- Pinnochio
- Y Cat Yn Y Hat
- Y Tri Moch Bach
- Y Gruffalo
- Charlie And The Siocled Factory
I ddarganfod yr holl lyfrau gyda'r gair "The" yn y teitl, byddech chi'n defnyddio'r gystrawen ganlynol:
grep Y llyfrau
Bydd y canlyniadau canlynol yn cael eu dychwelyd:
- Goldilocks A The Three Bears
- Gwyn Eira A Saith Dwarfs
- Y Cat Yn Y Hat
- Y Tri Moch Bach
- Y Gruffalo
- Charlie And The Siocled Factory
Ym mhob achos, bydd y gair "Y" yn cael ei amlygu.
Sylwch fod y chwiliad yn achos sensitif felly felly os oedd gan un o'r teitlau "y" yn hytrach na "Y" yna ni fyddai wedi ei ddychwelyd.
Er mwyn anwybyddu'r achos, gallwch ychwanegu'r newid canlynol:
grep y llyfrau - caseignore
Gallwch hefyd ddefnyddio'r switsh -i fel a ganlyn:
grep -i'r llyfrau
02 o 09
Chwiliwch am String Mewn Ffeil Gan ddefnyddio Cardiau Wild
Mae'r gorchymyn grep yn bwerus iawn. Gallwch ddefnyddio llu o dechnegau cyfateb patrwm i hidlo canlyniadau.
Yn yr enghraifft hon, byddaf yn dangos i chi sut i chwilio am linyn mewn ffeil gan ddefnyddio cardiau gwyllt .
Dychmygwch fod gennych ffeil o'r enw lleoedd gyda'r enwau lleoedd canlynol yn yr Alban:
aberdeen
aberystwyth
aberlour
anfodlon
inverness
Newburgh
ceirw newydd
galloway newydd
glasgow
edinburgh
Os ydych chi am ddod o hyd i'r holl leoedd sydd â mewnbwn yn yr enw, defnyddiwch y cystrawen ganlynol:
lleoedd grep inver *
Mae'r cerdyn gwyllt seren (*) yn sefyll am 0 neu fwy. Felly, os oes gennych le a elwir yn fewnol neu le a elwir yn fewnfudiad yna byddai'r ddau yn cael eu dychwelyd.
Cerdyn gwyllt arall y gallwch ei ddefnyddio yw'r cyfnod (.). Gallwch chi ddefnyddio hyn i gyd-fynd â llythyr unigol.
lleoedd i mewn i mewn
Byddai'r gorchymyn uchod yn dod o hyd i leoedd a elwir yn ddiffygiol ac yn fewnfudiadol ond ni fyddai'n dod o hyd i ryfel oherwydd caniateir dim ond un cerdyn gwyllt rhwng y ddau r fel y'i dynodir gan y cyfnod sengl.
Mae cerdyn gwyllt y cyfnod yn ddefnyddiol ond gall achosi problemau os oes gennych chi un fel rhan o'r testun rydych chi'n ei chwilio.
Er enghraifft, edrychwch ar y rhestr hon o enwau parth
- linux.about.com
- pcsupport.about.com
- mp3.about.com
- mwynau.about.com
- androidgames.about.com
- netforbeginners.about.com
- everydaylinuxuser.com
- google.co.uk
- google.au
- Direct.gov.uk
I ddarganfod yr holl outlines you could just search gan ddefnyddio'r gystrawen ganlynol:
grep * am * domainnames
Byddai'r gorchymyn uchod yn disgyn os oedd y rhestr yn cynnwys yr enw canlynol ynddo:
- everydaylinuxuser.com/about.html
Gallech, felly, roi cynnig ar y cystrawen ganlynol:
grep * about.com domainnames
Byddai hyn yn gweithio'n iawn oni bai bod parth gyda'r enw canlynol:
aboutycom.com
I chwilio am y term about.com, bydd angen i chi ddianc o'r dot fel a ganlyn:
grep * am \ .com domainnames
Y cerdyn gwyllt olaf i'ch dangos yw'r marc cwestiwn sy'n sero neu un cymeriad.
Er enghraifft:
enwau enwau glas
Byddai'r gorchymyn uchod yn dychwelyd aberdeen, aberystwyth neu hyd yn oed berwick.
03 o 09
Chwiliwch am Llinynnau Ar y Dechrau a'r Diwedd Ar-lein Defnyddio grep
Mae'r symbol carat (^) a'r ddoler ($) yn eich galluogi i chwilio am batrymau ar ddechrau a diwedd llinellau.
Dychmygwch fod gennych ffeil o'r enw pêl-droed gyda'r enwau tîm canlynol:
- Blackpool
- Lerpwl
- Dinas Manceinion
- Leicester City
- Manchester United
- Newcastle United
- FC United Of Manchester
Os ydych chi am ddod o hyd i'r holl dimau a ddechreuodd gyda Manceinion, byddech chi'n defnyddio'r gystrawen ganlynol:
grep ^ timau Manceinion
Byddai'r gorchymyn uchod yn dychwelyd Manchester City a Manchester United ond nid FC United Of Manchester.
Fel arall, gallwch ddod o hyd i'r holl dimau sy'n dod i ben gyda United gan ddefnyddio'r gystrawen ganlynol:
grep United $ timau
Byddai'r gorchymyn uchod yn dychwelyd Manchester United a Newcastle United ond nid CC United of Manchester.
04 o 09
Cyfrif Nifer y Gemau Defnyddio grep
Os nad ydych am ddychwelyd y llinellau gwirioneddol sy'n cyd-fynd â phatrwm gan ddefnyddio grep ond rydych chi am wybod faint sydd gennych gallwch ddefnyddio'r gystrawen ganlynol:
ffeil fewnbwn patrwm grep -c
Pe bai'r patrwm wedi'i gyfateb ddwywaith yna byddai rhif 2 yn cael ei ddychwelyd.
05 o 09
Dod o hyd i bob un o'r telerau nad ydynt yn cyd-fynd â defnyddio grep
Dychmygwch fod gennych restr o enwau lle gyda'r gwledydd a restrir fel a ganlyn:
- Alban aberdeen
- glasgow Scotland
- liverpool england
- bae colwyn
- londain england
Efallai eich bod wedi sylwi nad oes gan y bae colwyn unrhyw wlad sy'n gysylltiedig ag ef.
I chwilio am yr holl leoedd gyda gwlad, gallech ddefnyddio'r gystrawen ganlynol:
tir y tir $ lleoedd
Dychwelir y canlyniadau yn yr holl leoedd ac eithrio bae colwyn.
Mae hyn yn amlwg yn unig yn gweithio ar gyfer lleoedd sy'n dod i ben mewn tir (prin wyddonol).
Gallwch wrthdroi'r dewis gan ddefnyddio'r gystrawen ganlynol:
grep -v tir $ lleoedd
Byddai hyn yn dod o hyd i'r holl leoedd nad oeddent yn dod i ben gyda thir.
06 o 09
Sut i Dod o hyd i Linellau Gwag Mewn Ffeiliau Defnyddio grep
Dychmygwch fod gennych ffeil fewnbwn a ddefnyddir gan gais trydydd parti sy'n atal darllen y ffeil pan fydd yn dod o hyd i linell wag fel a ganlyn:
- Alban aberdeen
- inverness scotland
- liverpool england
- bae colwyn cymru
Pan fydd y cais yn cyrraedd y llinell ar ôl liverpool bydd yn stopio i ddarllen ystyr bae colwyn yn cael ei golli yn llwyr.
Gallwch ddefnyddio grep i chwilio am linellau gwag gyda'r cystrawen ganlynol:
grep ^ $ lleoedd
Yn anffodus nid yw hyn yn arbennig o ddefnyddiol oherwydd ei fod yn dychwelyd y llinellau gwag yn unig.
Gallech, wrth gwrs, gael cyfrif o nifer y llinellau gwag fel siec i weld a yw'r ffeil yn ddilys fel a ganlyn:
grep -c ^ $ lleoedd
Fodd bynnag, byddai'n fwy defnyddiol gwybod y rhifau llinell sydd â llinell wag fel y gallwch eu disodli. Gallwch chi wneud hynny gyda'r gorchymyn canlynol:
grep -n ^ $ lleoedd
07 o 09
Sut i Chwilio am Llinynnau O Gymeriadau Uchafswm neu Isafswm Defnyddio grep
Gan ddefnyddio grep gallwch chi benderfynu pa llinellau mewn ffeil sydd â chymeriadau uchaf gan ddefnyddio'r cystrawen ganlynol:
grep '[AZ]' enw ffeil
Mae'r cromfachau sgwâr [] yn caniatáu i chi bennu ystod y cymeriadau. Yn yr enghraifft uchod mae'n cyfateb i unrhyw gymeriad sydd rhwng A a Z.
Felly, i gyfateb cymeriadau isaf, gallwch ddefnyddio'r gystrawen ganlynol:
grep '[az]' enw ffeil
Os ydych chi am gyfateb i lythyrau yn unig ac nid rhifau neu symbolau eraill, gallwch ddefnyddio'r gystrawen ganlynol:
grep '[a-zA-Z]' enw ffeil
Gallwch chi wneud yr un peth â rhifau fel a ganlyn:
grep '[0-9]' enw ffeil
08 o 09
Edrych am batrymau ailadrodd Defnyddio grep
Gallwch ddefnyddio bracedi bras {} i chwilio am batrwm ailadroddus.
Dychmygwch fod gennych ffeil gyda rhifau ffôn fel a ganlyn:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
Rydych chi'n gwybod bod angen tri digid ar ran gyntaf y rhif ac rydych am ddod o hyd i'r llinellau nad ydynt yn cyfateb i'r patrwm hwn.
O'r enghraifft flaenorol, gwyddoch fod [0-9] yn dychwelyd pob rhif mewn ffeil.
Yn yr achos hwn, rydym am i'r llinellau sy'n dechrau gyda thri rhif, ac yna gysylltnod (-). Gallwch wneud hynny gyda'r cystrawen ganlynol:
grep "^ [0-9] [0-9] [0-9] -" rhifau
Fel y gwyddom o'r enghreifftiau blaenorol, mae'r carat (^) yn golygu bod yn rhaid i'r llinell ddechrau gyda'r patrwm canlynol.
Bydd y [0-9] yn chwilio am unrhyw rif rhwng 0 a 9. Gan fod hyn wedi'i gynnwys dair gwaith mae'n cyfateb â 3 rhif. Yn olaf, mae cysylltnod i nodi bod rhaid i gysylltnod lwyddo'r tri rhif.
Trwy ddefnyddio'r bracedi bras gallwch wneud y chwiliad yn llai fel a ganlyn:
grep "^ [0-9] \ {3 \} -" rhifau
Mae'r slash yn dianc o'r {bracket fel ei fod yn gweithio fel rhan o'r mynegiant rheolaidd ond yn ei hanfod beth mae hyn yn ei ddweud yw [0-9] {3} sy'n golygu unrhyw rif rhwng 0 a 9 dair gwaith.
Gellir defnyddio'r bracedi cromlin hefyd fel a ganlyn:
{5,10}
{5,}
Mae'r {5,10} yn golygu bod rhaid ailadrodd y cymeriad y mae'n chwilio amdano o leiaf 5 gwaith ond dim mwy na 10 tra bod y {5,} yn golygu bod yn rhaid i'r gymeriad gael ei ailadrodd o leiaf 5 gwaith ond gall fod yn fwy na hynny.
09 o 09
Defnyddio'r Allbwn o Reolaethau Eraill Defnyddio grep
Hyd yn hyn rydym wedi edrych ar gydweddu patrymau mewn ffeiliau unigol ond gall grep ddefnyddio'r allbwn o orchmynion eraill fel y mewnbwn ar gyfer cyfateb patrwm.
Enghraifft wych o hyn yw defnyddio'r gorchymyn ps sy'n rhestru prosesau gweithgar.
Er enghraifft, rhedeg y gorchymyn canlynol:
ps -ef
Bydd yr holl brosesau rhedeg ar eich system yn cael eu harddangos.
Gallwch ddefnyddio grep i chwilio am broses redeg benodol fel a ganlyn:
ps -ef | grep firefox