Šta su Linux Metacharacters i kako ih koristite

Prema Vikipediji, metakarakter je svaki karakter koji ima posebno značenje, kao što je karat (^), znak za dolar ($) ili zvezdica (*).

Što se tiče Linuxa, postoji dosta ovih meta-karaktera i njihovo značenje se razlikuju u zavisnosti od toga koja komanda ili program pokrećete.

Potpuno zaustavljanje kao Metacharacter (.)

Skromna puna stanica koristi se za donaciju trenutne pozicije kada se pokreću komande kao što su cd , find ili sh, ali unutar aplikacija kao što su awk , grep i sed se koristi za označavanje bilo kog karaktera.

Kao primer, naredna naredba će pronaći sve mp3 datoteke u trenutnoj fascikli i ispod.

pronaći. -name * .mp3

Ako pokrenete tu komandu u prezentaciji radnog direktorijuma (pwd), verovatno ćete vratiti rezultate, pod pretpostavkom da zadržite mp3 datoteke u muzičkom direktorijumu unutar vašeg kućnog foldera.

Sada pogledajte ovu naredbu:

ps -ef | grep f..efoks

Komanda ps navodi sve programe koji se pokreću na vašem računaru. Grep naredba uzima linije unosa i traži šablon.

Prema tome, komanda ps -ef dobija listu pokretanih procesa i daje ga grep-u koji traži bilo koju liniju na listi koja ima f.efoks gde je. može značiti bilo koji karakter.

Ako pokrenete firefox, dobićete utakmicu. Slično tome, ako imate program pod nazivom fonefox ili freefox, oni će biti vraćeni.

Zvezdica kao metakarakter (*)

Zvezdica je sveobuhvatno poznat metacharacter i koristi se za značenje 0 ili više pri traženju šablona.

Na primjer:

pronaći. -name * .mp3

* .mp3 vraća utakmicu za bilo koje ime datoteke koje se završava u .mp3. Slično tome, mogao bih da koristim zvjezdicu sa grep komandom kao sledeće emisije:

ps -ef | grep F * efox

Vredi napomenuti da se ovo malo razlikuje, jer asterisk znači nula ili više, kao i pronalaženje firefox-a, facefox-a i fonefox-a može pronaći i flutefox, ferretfox i čak samo fefox.

Carat kao Metacharacter (^)

Karat (^) se koristi da označava početak linije ili stringa. Pa kako se koristi?

Ls naredba se koristi za popisivanje svih datoteka u fascikli na sledeći način:

ls

Ako želite da znate sve datoteke u fascikli koja počinje sa određenim nizom kao što je "gnome", onda se karat može koristiti za određivanje tog stringa.

Na primjer:

ls | grep ^ gnome

Imajte na umu da ovo samo navodi datoteke koje počinju sa gnomeom. Ako želite fajlove koji imaju gnome u nazivu datoteke bilo gdje, onda biste se ponovo vratili u zvjezdicu.

U gore navedenom primeru, ls vraća listu imena datoteka i prosleđuje tu listu grep-u koji se koristi za usklađivanje obrazaca. grep zna da simbol karata znači pronaći sve što počinje sa likovima koji dolaze nakon toga, u ovom slučaju, to je gnome.

Dollar simbol kao Metacharacter ($)

Simbol dolara može imati višestruko značenje kao metacharacter unutar Linuxa.

Kada se koristi za usklađivanje obrazaca, to znači suprotno od karata i označava bilo koji obrazac koji se završava sa određenim nizom.

Na primjer:

ls | grep png $

Ovde se navodi sve datoteke koje se završavaju png-om.

Simbol dolara se takođe koristi za pristup promenljivim okruženjima u bash shell-u.

Na primjer:

izvoz pas = molly
echo $ pas

Linijski izvozni pas = molly kreira varijablu okoline pod nazivom pas i postavlja vrijednost molly. Za pristup promenljivoj okolini koristi se simbol $. Sa simbolom $, izraz echo $ dog se prikazuje molly, ali bez nje, izjava o eho psu samo prikazuje reč psa.

Izbjegavanje Metacharacters

Ponekad ne želite da metakarakter ima posebno značenje. Šta ako imate datoteku pod nazivom f.refox i datoteku pod nazivom firefox.

Sada pogledajte sledeću naredbu:

ls | grep f.refox

Šta misliš da se vraća? Oba f.refox-a i firefox-a se vraćaju jer obojica odgovaraju obrazcu.

Da biste vratili samo f.refox, potrebno je da izađete iz pune stope da bi zaista značili punu stanicu na sledeći način:

ls | grep f \\. refoks

Zajednički metakarakter i njihovo značenje

Lista Linux Metacharacters
Karakter Značenje
. Svaki lik
* Nula ili više znakova
^ Podesite bilo koju liniju ili niz koji počinju sa šablonom (npr. ^ Gnome)
$ Podudaranje bilo koje linije ili stringa koja se završava šablonom (npr. Gnome $)
\ Izbegava sledeći znak da ukloni svoje posebno značenje
[] Podudaranje jedne liste ili opsega (npr. ["Abc", "def"] ili [1..9]
+ Podudaranje sa jednim ili više prethodnih (npr. Grep a +)
? Nula meča ili jedna prethodna