ဝီကီပီးဒီးယားအညီ, metacharacter မဆိုထိုကဲ့သို့သောကာရက် (^) အဖြစ်အထူးအဓိပ်ပာယျရှိကွောငျးဇာတ်ကောင်, ဒေါ်လာစျေးနိမိတ်လက္ခဏာကို ($) သို့မဟုတ်တစ်ခရေပွင့ (*) ဖြစ်ပါသည်။
Linux ကို၏စည်းကမ်းချက်များ၌ဤ metacharacters နှင့်၎င်းတို့၏အဓိပ္ပါယ်များတဲ့တရားမျှတတဲ့အရေအတွက်ကပေးသောအမိန့်တော်ရှိဒါမှမဟုတ်သင်အပြေးနေကြသည်အစီအစဉ်ကိုပေါ် မူတည်. အဲဒီမှာကွဲပြားနေကြသည်။
တစ်ဦးက Metacharacter အမျှအဆိုပါအပြည့်အဝရပ်တန့် (။ )
နှိမ့်ချအပြည့်အဝမှတ်တိုင်ကဲ့သို့သောပညတ်တော်တို့ကိုအပြေးလာသောအခါလက်ရှိအနေအထားလှူဒါန်းရာတွင်အသုံးပြုသည် cd , ရှာတွေ့ သို့မဟုတ် sh ပေမယ်ကဲ့သို့သော application များကိုအတွင်း awk , grep နှင့် sed ကြောင့်မည်သည့်ဇာတ်ကောင်ဖျောညှနျးကိုအသုံးပြုသည်။
ဥပမာတစ်ခုအဖြစ်အောက်ပါ command ကိုလက်ရှိ folder ထဲမှာအောက်တွင်အားလုံး mp3, files တွေကိုရှာတွေ့ပါလိမ့်မယ်။
ရှာပါ။ -name * .mp3
သငျသညျအလုပ်မလုပ် directory ကို (PWD) ကိုတင်ပြသင်သည်အတွက် command ကို run လျှင်သင်ဖြစ်နိုင်ရလဒ်များကိုသင်သည်သင်၏နေအိမ်ဖိုင်တွဲအတွင်းဂီတ folder ထဲမှာသင့်ရဲ့ mp3, files တွေကိုစောင့်ရှောက်ယူဆပြန်ရောက်ရလိမ့်မယ်။
အခုတော့ဒီ command ကိုကြည့်:
ps -ef | grep f..efox
အဆိုပါ ps command ကိုစာရင်းသင်၏ကွန်ပျူတာပေါ်မှာရှိသမျှ running ဖြစ်စဉ်များ။ အဆိုပါ grep command ကိုတစ်ပုံစံများအတွက် input နှင့်ရှာဖွေမှုလိုင်းများကြာပါသည်။
ထို့ကြောင့် command ကို -ef အဆိုပါ ps ဖြစ်စဉ်များ running များစာရင်းကိုရရှိသွားတဲ့အဘယ်မှာရှိသနည်း f..efox သောစာရင်းထဲတွင်မဆိုလိုင်းအဘို့ရှာဖွေပေးသော grep ကပေးသည်။ မည်သည့်ဇာတ်ကောင်ဆိုလိုနိုင်ပါ။
သငျသညျ firefox ကိုပြေးရှိပါကသင်တစ်ဦးပွဲစဉ်အရပါလိမ့်မယ်။ သငျသညျ fonefox သို့မဟုတ် freefox running လို့ခေါ်တဲ့အစီအစဉ်ကိုရှိပါကအလားတူပင်သူတို့ကလည်းပြန်ရောက်လိမ့်မည်။
တစ်ဦး metacharacter (*) အဖြစ်အဆိုပါခရေပွင့
အဆိုပါခရေပွင့တစ်ဦးထက်ပိုတစ်ကမ္ဘာလုံးအတိုင်းအတာလူသိများတဲ့ metacharacter သည်နှင့်တစ်ဦးပုံစံကိုရှာဖွေနေ 0 င်သို့မဟုတ်ထိုထက်ပိုသည့်အခါဆိုလိုအသုံးပြုသည်။
ဥပမာ:
ရှာပါ။ -name * .mp3
အဆိုပါ * .mp3 .mp3 အတွက်အဆုံးသတ်ဆိုဖိုင်အမည်များအတွက်ပွဲစဉ်ပြန်လည်ရောက်ရှိ။ အလားတူပဲငါအောက်ပါပြပွဲအဖြစ် grep Command ဖြင့်ခရေပွင့အသုံးပွုနိုငျ:
ps -ef | grep က F * efox
ဒါဟာခရေပွင့သုညသို့မဟုတ်ထိုထက်ပိုဒီတော့အဖြစ် Firefox, facefox ကြောင့်လည်း flutefox, ferretfox နှင့်ပင်ပဲ fefox ရှာတှေ့နိုငျ fonefox ရှာဖွေတာကိုဆိုလိုတယ်ဘာဖြစ်လို့လဲဆိုတော့ဒီအနည်းငယ်ကွာခြားကြောင်းသတိပြုသင့်ပေသည်။
တစ်ဦးက Metacharacter အမျှအဆိုပါ Carat (^)
အဆိုပါကာရက် (^) တစ်လိုင်းရဲ့ start တစ်ခုသို့မဟုတ် string ကိုဖျောညှနျးကိုအသုံးပြုသည်။ ဒါကြောင့်ဘယ်လိုသုံးထားသလဲ?
အဆိုပါ ls command ကိုအောက်မှာဖော်ပြထားတဲ့အတိုင်း folder ထဲမှာဖိုင်တွေအားလုံးကိုစာရင်းပြုစုရန်အသုံးပြုသည်:
ls
သငျသညျထိုကဲ့သို့သောထို့နောက်ကာရက်ကြောင့် string ကိုသတ်မှတ်ဖို့အသုံးပြုနိုင်ပါတယ် "gnome" အဖြစ်တစ်ဦးအချို့သော string ကိုအတူကစတင်ခဲ့သည်သော folder ထဲမှာဖိုင်တွေအားလုံးကိုသိလိုလျှင်။
ဥပမာ:
ls | grep ^ gnome
ဒီသာ gnome နှင့်အတူစတင်ဖိုင်တွေကို lists သတိပြုပါ။ သငျသညျဘယ်နေရာမှာမဆိုဖိုင်အမည်တစ်ခု gnome ရှိသည်သောဖိုင်များကိုချင်လျှင်သင်သည်နောက်တဖန်ပြန်ခရေပွင့ပြန်ပြောင်းမယ်။
အထက်ပါဥပမာထဲမှာ, ls filename များစာရင်းကိုပြန်လည်ရောက်ရှိနှင့်ပုံစံကိုက်ညီခြင်းအတွက်အသုံးပြုထားတဲ့ grep မှစာရင်းဖြတ်သန်းပါတယ်။ grep သည့်ကာရက်သင်္ကေတတစ်ခုကိုအပြီးလာသောဇာတ်ကောင်နှင့်အတူစတင်သည်နှင့်ဤအမှု၌, တက gnome ကြောင်းဘာမှကိုရှာဖွေဆိုလိုတယ်သိတယ်။
တစ်ဦးက Metacharacter အမျှအဆိုပါဒေါ်လာသင်္ကေတ ($)
ဒေါ်လာစျေးသင်္ကေတကို Linux အတွင်း metacharacter အဖြစ်မျိုးစုံအဓိပ္ပါယ်များရှိနိုင်ပါသည်။
ပုံစံများကိုက်ညီစေရန်အသုံးပြုသည့်အခါကကာရက်ဖို့ဆန့်ကျင်ဘက်ကိုဆိုလိုသည်နှင့်အထူးသဖြင့် string ကိုအတူကုန်ဆုံးမဆိုပုံစံဆိုလိုသညျ။
ဥပမာ:
ls | grep png $
ဤသည် png နှင့်အတူအဆုံးသတ်ရန်သောသူအပေါင်းတို့သည်ဖိုင်တွေစာရင်းပြုလုပ်ထားသည်။
ဒေါ်လာစျေးသင်္ကေတကိုလည်းကား Bash shell ကိုအတွင်းပတ်ဝန်းကျင် variable တွေကိုဝင်ရောက်ဖို့အသုံးပြုသည်။
ဥပမာ:
ပို့ကုန်ခွေး = Molly
$ ခွေးပဲ့တင်သံ
အဆိုပါလိုင်းပို့ကုန်ခွေး = Molly ခွေးကိုခေါ်ကာပတ်ဝန်းကျင် variable ကိုဖန်တီးပေးနှင့် Molly ရန်၎င်း၏တန်ဖိုးကိုသတ်မှတ်။ ပတ်ဝန်းကျင် variable ကိုဝင်ရောက်ဖို့အတွက် $ သင်္ကေတကိုအသုံးပြုသည်။ အဆိုပါ $ သင်္ကေတနှင့်အတူပဲ့တင်သံ $ ခွေးကြေညာချက် Molly ပြသပေမယ့်ပြင်, ပဲ့တင်သံခွေးကြေညာချက်ရုံစကားလုံးခွေးဖော်ပြပေးမှာဖြစ်ပါတယ်။
ထွက်ပြေးလာသူ Metacharacters
တစ်ခါတစ်ရံသင် metacharacter အထူးအဓိပ်ပာယျချင်ကြဘူး။ သင်သည်အဘယ်သို့ f.refox ဟုခေါ်တွင်ဖိုင်တစ်ဖိုင်နဲ့ firefox ကိုခေါ်ဖိုင်တစ်ခုရှိပါက။
အခုတော့အောက်ပါ command ကိုကြည့်:
ls | grep f.refox
သငျသညျပြန်ရောက်နေသည်ဘယ်လိုထင်သလဲ သူတို့နှစ်ဦးစလုံးပုံစံကိုက်ညီသောကွောငျ့ f.refox နှင့် firefox ကိုနှစ်ဦးစလုံးပြန်ရောက်နေကြသည်။
သာသင်ကအောက်ပါအတိုင်းအမှန်တကယ်အပြည့်အဝရပ်တန့်ဆိုလိုမှအပြည့်အဝမှတ်တိုင်မှလွတ်မြောက်ရန်လိုအပ်မယ်လို့ f.refox ပြန်လာရန်:
ls | grep, f \\ ။ refox
ဘုံ Metacharacters ပြီးတော့သူတို့ဆိုလို
ဇာတ်ကောင် | အဓိပ်ပာယျ |
။ | မဆိုဇာတ်ကောင် |
* | သုညသို့မဟုတ်ထိုထက်ပိုသောအက္ခရာများ |
^ | ပုံစံ (ဆိုလိုသည်မှာ ^ Gnome) နဲ့စတင်ပါရာကိုမဆို line သို့မဟုတ် string ကိုကိုက်ညီ |
$ | တစ်ပုံစံတွေနဲ့အဆုံးသတ်မဆို line သို့မဟုတ် string ကိုကိုက်ညီ (ဆိုလိုသည်မှာ gnome $) |
\ | ၎င်း၏အထူးအဓိပ်ပာယျကိုဖယ်ရှားဖို့အတွက်လာမယ့်ဇာတ်ကောင်လှ |
[] | ပွဲစဉ်စာရင်းကိုသို့မဟုတ်အကွာအဝေးတဦး (ဆိုလိုသည်မှာ [ "abc", "def"] သို့မဟုတ် [1..9] |
+ | ပွဲစဉ်တစ်ဦးသို့မဟုတ်ပိုပြီးရှေ့ (ဆိုလိုသည်မှာ grep တစ်ဦး +) |
? | ပွဲစဉ်သုညသို့မဟုတ်ရှေ့တစျခု |