การใช้ grep command

Jetsada Malaisirirat
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

--

--