Thuta Learning
ရှာဖွေရန်
IntermediateDevOps & Toolsbeginner

Pipe (|) နဲ့ Redirection (>, >>, <)

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Pipe (|) နဲ့ Redirection (>, >>, <) ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • Terminal ထဲမှာ ကိုယ်တိုင် command ကို စမ်းသုံးတတ်အောင် လုပ်မယ်
  • Real server/project မှာ ဒီ command ဘယ်လို အသုံးဝင်သလဲ ချိတ်မြင်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

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 ထဲ စမ်းမယ်

bash
ls -la | grep txt
ps aux | grep python
echo "first line" > log.txt
echo "second line" >> log.txt
cat log.txt        # ၂ ကြောင်းစလုံးမြင်ရမည်
You should see
log.txt ဖိုင်ထဲမှာ first line နှင့် second line ဆိုပြီး ၂ ကြောင်း ပေါ်နေမည်။

၅ မိနစ် စမ်းကြည့်

ls -la | grep .txt ကို practice folder ပေါ်မှာ run ပြီး ရလဒ် ဘာတွေပြသလဲ ရေးပါ။ ပြီးရင် echo နဲ့ > vs >> ရဲ့ ကွာခြားချက်ကို ကိုယ်တိုင် စမ်းပါ။

သတိလေးတစ်ချက်

> ကို important ဖိုင်ပေါ်မှာ မှားရိုက်မိရင် content တစ်ခုလုံး ချက်ချင်း ပျက်သွားနိုင်ပါတယ် — Recycle Bin မရှိကြောင်း ထပ်ပြောစရာ မလိုပါဘူးနော်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • > ကို >> အစား သုံးမိပြီး log ဖိုင်အဟောင်း အကုန်ပျောက်ခြင်း
  • pipe (|) ရှေ့နောက်က command နှစ်ခု ကိုက်ညီမှုမရှိတာကို မသတိထားခြင်း (ဥပမာ ls | cd — cd က input လက်မခံသောကြောင့် အလုပ်မဖြစ်)

အခု ကိုယ်တိုင် စမ်းကြည့်

ls -la | grep .txt ကို practice folder ပေါ်မှာ run ပြီး ရလဒ် ဘာတွေပြသလဲ ရေးပါ။ ပြီးရင် echo နဲ့ > vs >> ရဲ့ ကွာခြားချက်ကို ကိုယ်တိုင် စမ်းပါ။

You'll know it worked when: log.txt ဖိုင်ထဲမှာ first line နှင့် second line ဆိုပြီး ၂ ကြောင်း ပေါ်နေမည်။

Pipe (|) နဲ့ Redirection (>, >>, <) | Thuta Learning