การใช้ grep command
1 min readJul 24, 2019
ปกติเราจะใช้ grep คู่กับ | (pipe) เพื่อกรองบางอย่างจาก output เช่น
ls |grep <word>
หากต้องการ grep หลายค่าจะใช้ เป็น
egrep หรือ grep -E
ls |grep -E “<word1>|<word2>”
ls |egrep “<word1>|<word2>”
แต่ถ้าต้องการให้แสดงบรรทัดก่อนหน้าหรือหลัง Output ที่จะกรองด้วยจะต้องมี Option เพิ่มเติม โดย <num> จะเป็นจำนวนบรรทัดที่จะแสดงก่อน/หลัง output
-A <num> print after line
-B <num> print before line
-C <num> print before and after line
Example
ls |grep -A 2 <word>
ls |grep -B 2 <word>
ls |grep -C 2 <word>
Ps. ฝากการใช้ xargs ไว้หน่อย
xarg จะรับ argument จาก | ก่อนหน้ามาเป็น ตรัวแปร คำสั่งปัจจุบัน
example
ลบ file นำหน้าด้วยชื่อ cluster ภายใต้ directory /tmp ทั้งหมด
$ find /tmp -name cluster -type f -print | xargs /bin/rm -f
or
$ find /tmp -name cluster -type f -print0 | xargs -0 /bin/rm -f