Згодна з Вікіпедыі, метасімвалы любы знак, які мае асаблівае значэнне, напрыклад, карат (^), знак даляра ($) або зорачкай (*).
З пункту гледжання Linux, існуе значная колькасць гэтых метасімвалаў і іх значэння адрозніваюцца ў залежнасці ад таго, якая каманда ці праграма, якую вы выкарыстоўваеце.
Поўная прыпынак як Метасімвал (.)
Пакорлівы поўнага прыпынку выкарыстоўваецца , каб ахвяраваць бягучай пазіцыі пры выкананні каманд , такіх як кампакт - дыск , знайсці або ш , але ў такіх прыкладаннях, як AWK , Grep і СЭД выкарыстоўваецца для абазначэння любога знака.
У якасці прыкладу, наступная каманда будзе знайсці ўсе mp3 файлы ў бягучай тэчцы і ніжэй.
знайсці. -name * .mp3
Калі запусціць гэтую каманду ў вас працоўным каталогу (PWD), то вы, верагодна, атрымаеце вынікі вяртаюцца, калі вы трымаеце вашыя mp3 файлы ў тэчцы музыкі ў вашай хатняй тэчцы.
Цяпер паглядзім на гэтую каманду:
пс -ef | Grep f..efox
Каманда спісы п.с. ўсе запушчаныя працэсы на вашым кампутары. Каманда Grep прымае радкі ўводу і пошуку па шаблоне.
Таму микросотовая -ef каманда атрымлівае спіс запушчаных працэсаў і дае яму Grep, якая шукае любую радок у спісе, які мае f..efox дзе. можа азначаць любы знак.
Калі ў вас ёсць Firefox працуе, вы атрымаеце матч. Сапраўды гэтак жа, калі ў вас ёсць праграма пад назвай fonefox або freefox працы яны будуць вернутыя.
Зорачка як Метасімвал (*)
Зорачка больш універсальна вядомы метасімвалы і выкарыстоўваецца для абазначэння 0 або больш пры пошуку па шаблоне.
Напрыклад:
знайсці. -name * .mp3
* .mp3 вяртае запалку для любога файла, які заканчваецца ў .mp3. Аналагічным чынам, я мог бы выкарыстаць зорачку з ГРЭП каманды, як паказвае наступнае:
пс -ef | Grep F * efox
Варта адзначыць, што гэта крыху адрозніваецца тым, што зорачка азначае нуль ці больш, а таксама знайсці FireFox, facefox і fonefox ён можа таксама знайсці flutefox, ferretfox і нават проста fefox.
Карат як Метасімвал (^)
Карат (^) выкарыстоўваецца для абазначэння пачатку радкі або радкі. Так як яна выкарыстоўваецца?
Каманда Ls выкарыстоўваецца для атрымання спісу ўсіх файлаў у тэчцы наступным чынам:
Ls
Калі вы хочаце ведаць усе файлы ў тэчцы, якая пачынаецца з пэўнай радком, напрыклад, «гном», то карат можа быць выкарыстана для ўказанні гэтага радка.
Напрыклад:
Ls | Grep ^ гном
Звярніце ўвагу, што гэта толькі спіс файлаў, якія пачынаюцца з гномам. Калі вы хочаце, каб файлы, якія маюць гном у імя файла ў любым месцы, то вы б зноў вярнуцца да зорачцы.
У прыведзеным вышэй прыкладзе, вяртае Ls спіс імёнаў файлаў і перадае гэты спіс ГРЭП, які выкарыстоўваецца для супастаўлення з узорам. Grep ведае, што сімвал карата азначае знайсці ўсё, што пачынаецца з сімваламі, якія прыходзяць пасля яго, і ў гэтым выпадку, гэта гномы.
Сімвал даляра як Метасімвал ($)
Сімвал даляра можа мець некалькі значэнняў, як Метасімвал ў Linux.
Пры выкарыстанні ў адпаведнасці мадэлі гэта азначае, што процілегла карат і пазначае любы ўзор, які заканчваецца пэўнай радком.
Напрыклад:
Ls | Grep Png $
У гэтым спісе пералічаныя ўсе файлы, якія заканчваюцца PNG.
Сімвал даляра таксама выкарыстоўваецца для доступу да пераменным акружэння ў Баш абалонкі.
Напрыклад:
экспарт сабака = Молі
Рэха $ сабака
Экспартная лінія сабака = Молі стварае зменную асяроддзі з імем сабакі і ўсталёўвае яго значэнне для Molly. Каб атрымаць доступ да зменнай асяроддзя выкарыстоўваецца сімвал $. З сімвалам $ рэха выраз $ сабакі адлюстроўвае Molly, але без яго, рэха заяву сабакі проста выводзіць слова сабакі.
экранаванне метасімвалаў
Часам вы не хочаце метасімвалаў мець асаблівае значэнне. Што рабіць, калі ў вас ёсць файл з імем f.refox і файл з імем светлячок.
Цяпер паглядзім на наступную каманду:
Ls | Grep f.refox
Як вы думаеце, вяртаюцца? Абодва f.refox і светлячок вяртаюцца, таму што яны абодва адпавядаюць шаблоне.
Каб вярнуць толькі f.refox вам спатрэбіцца, каб пазбегнуць поўнага прыпынку на самай справе азначае поўную прыпынак наступным чынам:
Ls | Grep е \\. ReFox
Агульныя метасімвалы і іх значэнне
характар | сэнс |
, | любы сімвал |
* | Нуль ці больш сімвалаў |
^ | Матч любой радкі або радок, якія пачынаюцца з малюнкам (г.зн. ^ гном) |
$ | Матч любой радкі або радкі, якія заканчваюцца шаблон (г.зн. гномы $) |
\ | Ігнаруе наступны знак, каб выдаліць яго асаблівае значэнне |
[] | Матч адзін з спісу або дыяпазону (г.зн. [ «а», «DEF»] або [1..9] |
+ | Матч адзін або некалькі папярэдніх (г.зн. Grep а +) |
? | Матч нуль або адзін папярэдні |