Wikipedia sõnul on metasarakteriks ükskõik milline eriline tähendus, näiteks karaat (^), dollarimärk ($) või tärn (*).
Linuxi puhul on nende metasõnastike arv üsna palju ja nende tähendused erinevad sõltuvalt sellest, millist käsku või programmi käitate.
Täieliku peatusena kui metasärk (.)
Alandlikku täielikku stoppärast kasutatakse käimasoleva positsiooni annetamiseks käskude nagu cd , find või sh käivitamisel, kuid rakendustes, nagu awk , grep ja sed, kasutatakse seda mis tahes tähemärgi tähistamiseks.
Näiteks saab järgmine käsk leida kõik mp3-failid praeguses kaustas ja allpool.
leia. eesnimi * .mp3
Kui käivitate selle käsu, esitate töökataloogi (pwd), siis jõuate tõenäoliselt tulemuste juurde, eeldades, et hoiate oma mp3-faile kodukataloogi kuuluvas muusikakavas.
Nüüd vaadake seda käsku:
ps -ef | grep f .. efox
Käsk ps kuvab kõik arvuti töötavad protsessid. Grep-käsk vastab sisendjoontele ja otsib mustrit.
Seetõttu käib ps -ef käsk nimekirja käimasolevatest protsessidest ja annab sellele grep, mis otsib mis tahes liini loendis, millel on f..efox, kus. võib tähendada mis tahes tegelast.
Kui olete Firefoxi käivitanud, saate mängu. Samamoodi, kui teil on käivitatav programm fonefox või freefox, siis need tagastatakse ka.
Tärn kui metasärk (*)
Tärn on rohkem universaalselt tuntud metasärk ja seda kasutatakse mustri otsimisel tähenduses 0 või rohkem.
Näiteks:
leia. eesnimi * .mp3
* .mp3 tagastab mängu mis tahes failinime, mis lõpeb .mp3-ga. Samamoodi oleksin võinud kasutada tärniga grep-käsku järgmiste näidetena:
ps -ef | grep F * efox
Väärib märkimist, et see erineb veidi, sest tärn tähendab nulli või rohkem, samuti võib leida firefox, facefox ja fonefox, samuti võib leida flutefoxi, ferretfoxi ja isegi just fefoxit.
Karaat kui metakorakter (^)
Karaat (^) tähistab joont või stringi algust. Kuidas seda kasutatakse?
Ls-käsku kasutatakse kausta kõigi failide loendis järgmiselt:
ls
Kui soovite teada kõik failid kataloogis, mis algab teatud stringiga, näiteks "gnome", siis saab karaati selle stringi täpsustada.
Näiteks:
ls | grep ^ gnome
Pange tähele, et see ainult loetleb failid, mis algavad gnome'iga. Kui soovite, et failid, millel on failinimi mis tahes kujul, oleksid ikkagi tagasi tärniks.
Ülaltoodud näites tagastab ls failinimede loendi ja edastab selle nimekirja grep, mida kasutatakse mustri sobitamiseks. Grep teab, et karaatmärgi all on leida midagi, mis algab pärast seda järgnenud tähemärke, ja sel juhul on see gnome.
Dollari sümbol kui metasärk ($)
Dollari sümbol võib olla mitme tähendusega kui metasõnastik Linuxis.
Kui kasutatakse mustrite vastavust, tähendab see karaati vastupidist ja tähistab mis tahes mustrit, mis lõpeb kindla stringiga.
Näiteks:
ls | grep png $
Siin näidatakse kõik failid, mis lõppevad png-ga.
USA dollari sümbolit kasutatakse ka keskkonnamuutujatele bash-shellis.
Näiteks:
eksport koer = mollly
echo $ dog
Rida ekspordiks koer = molly loob keskkonnamuutuja, mida nimetatakse koeraks ja määrab selle väärtuse mollini. Keskkonnamuutuja kasutamiseks kasutatakse sümboli $. $ Sümboliga näitab echo $ dog avaldus mullalt, kuid ilma selleta, on echo-koera väljavõte just sõna koer.
Metasõnade põgenemine
Mõnikord ei taha metasõnastikul erilist tähendust. Mis siis, kui teil on fail f.refox ja fail nimega firefox.
Nüüd vaadake järgmist käsku:
ls | grep f.refox
Mis sa arvad, on tagastatud? Nii f.refox kui ka firefox tagastatakse, kuna need mõlemad vastavad mustriga.
F.refoxi tagasipöördumisel peaksite päästikult täielikult välja lülitama, et tegelikult täielikult peatada järgmiselt:
ls | grep f \\. refox
Tavalised metasõnad ja nende tähendused
Tähemärk | Tähendus |
. | Iga tegelane |
* | Null või rohkem tähemärki |
^ | Match mis tahes joont või stringi, mis algab mustriga (st ^ gnome) |
$ | Sobige mis tahes joont või stringi, mis lõpeb mustriga (st gnome $) |
\ | Päästab järgmise tähemärgi, et eemaldada selle eriline tähendus |
[] | Sobige ühte loendist või vahemikust (st ["abc", "def"] või [1..9] |
+ | Vii üks või mitu eelmist (so grep a +) |
? | Vii null või eelnev |