Beth yw Metasracters Linux A Sut Ydych Chi'n Defnyddio

Yn ôl Wikipedia, mae metacharacter yn unrhyw gymeriad sydd ag ystyr arbennig, fel carat (^), arwydd doler ($) neu seren (*).

O ran Linux, mae nifer deg o'r metelegwyr hyn ac mae eu hystyron yn wahanol yn ôl pa orchymyn neu raglen rydych chi'n ei rhedeg.

The Full Stop As A Metacharacter (.)

Defnyddir y stop llawn manwl i roi'r sefyllfa gyfredol wrth redeg gorchmynion megis cd , darganfod neu shio, ond o fewn ceisiadau fel awk , grep a thirst , fe'i defnyddir i ddynodi unrhyw gymeriad.

Fel enghraifft, bydd y gorchymyn canlynol yn dod o hyd i bob ffeil mp3 yn y ffolder presennol ac isod.

dod o hyd i. -name * .mp3

Os ydych chi'n rhedeg y gorchymyn hwnnw yn eich cyfeiriadur gwaith presennol (pwd) yna mae'n debyg y cewch y canlyniadau a ddychwelir, gan dybio eich bod yn cadw eich ffeiliau mp3 mewn ffolder gerddoriaeth yn eich ffolder cartref.

Nawr edrychwch ar y gorchymyn hwn:

ps -ef | grep f..efox

Mae'r gorchymyn ps yn rhestru'r holl brosesau rhedeg ar eich cyfrifiadur. Mae'r gorchymyn grep yn cymryd llinellau mewnbwn ac yn chwilio am batrwm.

Felly, mae'r gorchymyn ps -ef yn cael rhestr o brosesau rhedeg ac yn ei rhoi i grep sy'n chwilio am unrhyw linell yn y rhestr sydd â ff. Gall olygu unrhyw gymeriad.

Os oes gennych firefox yn rhedeg, cewch gêm. Yn yr un modd, os oes gennych raglen o'r enw fonefox neu freefox yn rhedeg byddant hefyd yn cael eu dychwelyd.

Mae'r seren fel metacharacter (*)

Mae'r seren yn metacharacter mwy adnabyddus ac fe'i defnyddir i olygu 0 neu fwy wrth chwilio am batrwm.

Er enghraifft:

dod o hyd i. -name * .mp3

Mae'r * .mp3 yn dychwelyd gêm ar gyfer unrhyw enw ffeil sy'n dod i ben yn .mp3. Yn yr un modd, gallwn fod wedi defnyddio'r seren gyda'r gorchymyn grep fel y dangosir y canlynol:

ps -ef | grep F * efox

Mae'n werth nodi bod hyn yn wahanol iawn oherwydd bod y seren yn golygu sero neu fwy, yn ogystal â dod o hyd i firefox, facefox a fonefox gall hefyd ddod o hyd i flutefox, ferretfox a hyd yn oed dim ond fefox.

Y Carat Fel Metacharacter (^)

Defnyddir y carat (^) i ddynodi cychwyn llinell neu linyn. Felly sut mae'n cael ei ddefnyddio?

Defnyddir y gorchymyn ls i restru'r holl ffeiliau mewn ffolder fel a ganlyn:

ls

Os ydych chi eisiau gwybod yr holl ffeiliau mewn ffolder sy'n dechrau gyda llinyn penodol fel "gnome" yna gellir defnyddio'r carat i nodi'r llinyn hwnnw.

Er enghraifft:

ls | grep ^ gnome

Sylwch mai dim ond rhestrau sy'n dechrau gyda gnome sy'n rhestru hyn. Os ydych chi eisiau ffeiliau sydd â gnome yn yr enw ffeil yn unrhyw le, fe fyddech chi'n dychwelyd eto i'r seren.

Yn yr enghraifft uchod, mae'r ls yn dychwelyd rhestr o enwau ffeiliau a thaliadau sy'n rhestru i grep sy'n cael ei ddefnyddio ar gyfer cyfateb patrwm. Mae grep yn gwybod bod y symbol carat yn golygu dod o hyd i unrhyw beth sy'n dechrau gyda'r cymeriadau sy'n dod ar ei ôl ac yn yr achos hwn, mae'n gnome.

Symbol y Doler Fel Metacharacter ($)

Gall y symbol doler gael ystyron lluosog fel metacharacter o fewn Linux.

Pan gaiff ei ddefnyddio i gyfatebu patrymau, mae'n golygu y gwrthwyneb i'r carat ac yn dynodi unrhyw batrwm sy'n dod i ben gyda llinyn penodol.

Er enghraifft:

ls | grep png $

Mae hyn yn rhestru'r holl ffeiliau sy'n dod i ben gyda png.

Defnyddir symbol y ddoler hefyd i gael mynediad i newidynnau amgylcheddol o fewn y bragen bash.

Er enghraifft:

cwn allforio = molly
adleisio $ ci

Mae'r cwn allforio llinell = yn gryno yn creu newidyn amgylcheddol o'r enw ci ac yn gosod ei werth i dwyll. I gael mynediad i'r newidyn amgylcheddol defnyddir y symbol $. Gyda'r $ symbol mae'r datganiad adleisio $ c yn arddangos yn gryn ond hebddo, mae'r datganiad cwn adleisio yn dangos y ci word yn unig.

Mwy-Wythnosau Esgus

Weithiau nid ydych am i'r metacharacter gael ystyr arbennig. Beth os oes gennych ffeil o'r enw f.refox a ffeil o'r enw firefox.

Nawr edrychwch ar y gorchymyn canlynol:

ls | grep f.refox

Beth ydych chi'n meddwl ei ddychwelyd? Dychwelir y ddau f.refox a firefox oherwydd eu bod yn cyfateb i'r patrwm.

Er mwyn dychwelyd f.refox yn unig, byddai angen i chi ddianc o'r stop llawn i olygu stopio llawn fel a ganlyn:

ls | grep f \\. refox

Metacharacters Cyffredin a'u Hynny yw

Rhestr o Metacharacters Linux
Cymeriad Ystyr
. Unrhyw gymeriad
* Dim neu fwy o gymeriadau
^ Cydweddwch unrhyw linell neu linyn sy'n dechrau gyda phatrwm (hy ^ gnome)
$ Cydweddwch unrhyw linell neu linyn sy'n dod i ben gyda phatrwm (hy gnome $)
\ Ewch i'r cymeriad nesaf i gael gwared ar ei ystyr arbennig
[] Cyfateb un o restr neu amrediad (hy ["abc", "def"] neu [1..9]
+ Cydweddwch un neu ragor o'r blaen (hy grep a +)
? Cyfateb nero neu un yn flaenorol