ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
Pipe (|) က command တစ်ခုရဲ့ output ကို နောက်ထပ် command တစ်ခုရဲ့ input အဖြစ် တိုက်ရိုက် ပို့ပေးပါတယ် — ရေပိုက်ချိတ်သလိုပါပဲ။ ls -la | grep txt ဆိုရင် ls ရဲ့ ရလဒ်ကို grep ဆီ ပို့ပြီး 'txt' ပါတဲ့ line ပဲ ဖမ်းယူပါတယ်။ Redirection ကတော့ output ကို terminal အစား ဖိုင်ထဲ ပို့တာပါ — > က ဖိုင်ကို overwrite (အဟောင်း ဖျက်ပြီး အသစ်ရေး) လုပ်ပါတယ်, >> က ဖိုင်ရဲ့ အဆုံးမှာ append (ဆက်ထည့်) လုပ်ပါတယ်။ < ကတော့ ဖိုင်ထဲက data ကို command ရဲ့ input အဖြစ် ဖတ်ခိုင်းတာပါ။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
ls -la > filelist.txt ဆိုရင် ls ရလဒ်ကို screen ပေါ်မပြဘဲ filelist.txt ထဲပဲ သိမ်းပါလိမ့်မယ်။ echo "log entry" >> app.log ဆိုရင် log ဖိုင်ရဲ့ အဟောင်းကို မဖျက်ဘဲ line အသစ် ထပ်ဖြည့်ပါတယ် — log ဖိုင်တွေမှာ >> ကို အမြဲသုံးရမယ်, > သုံးမိရင် log history အကုန် ပျောက်သွားနိုင်ပါတယ်။ ps aux | grep python | wc -l လို command chain ကတော့ 'process list ထုတ်, python ပါတဲ့ line ဖမ်း, စုစုပေါင်း ဘယ်နှစ်ကြောင်းလဲ ရေတွက်' ဆိုတဲ့ အလုပ်သုံးခုကို တစ်ကြောင်းတည်းနဲ့ ပြီးအောင်လုပ်ပါတယ်။
အတူတူ terminal ထဲ စမ်းမယ်
ls -la | grep txt
ps aux | grep python
echo "first line" > log.txt
echo "second line" >> log.txt
cat log.txt # ၂ ကြောင်းစလုံးမြင်ရမည်log.txt ဖိုင်ထဲမှာ first line နှင့် second line ဆိုပြီး ၂ ကြောင်း ပေါ်နေမည်။၅ မိနစ် စမ်းကြည့်
ls -la | grep .txt ကို practice folder ပေါ်မှာ run ပြီး ရလဒ် ဘာတွေပြသလဲ ရေးပါ။ ပြီးရင် echo နဲ့ > vs >> ရဲ့ ကွာခြားချက်ကို ကိုယ်တိုင် စမ်းပါ။
သတိလေးတစ်ချက်
> ကို important ဖိုင်ပေါ်မှာ မှားရိုက်မိရင် content တစ်ခုလုံး ချက်ချင်း ပျက်သွားနိုင်ပါတယ် — Recycle Bin မရှိကြောင်း ထပ်ပြောစရာ မလိုပါဘူးနော်။