GREP COMMAND กับ STDOUT ของคำสั่งอื่น

GREP COMMAND กับ STDOUT ของคำสั่งอื่น

ยังคงต่อกับ grep command โดยที่เราจะเรียนรู้กันเพิ่มเติมเกี่ยวกับการค้นหาที่เฉพาะเจาะจงเพิ่มมากขึ้น

ค้นหาโดยระบุคำตรงๆ

โดยปกติแล้วเมื่อเราค้นหาโดยการระบุคำไป ยกตัวอย่างเช่น sec คำสั่ง grep จะค้นหาทั้ง sec1, sec2, sec3, sec4, sec5, security และอื่นๆ หากเราอยากจะระบุการค้นหาด้วย grep แบบให้ตรงตามคำที่เราต้องการเท่านั้นจะใช้เป็น -w option เช่น หากเราต้องการค้นหาเฉพาะคำว่า sec จะใช้คำสั่งเป็น
grep -w "sec" file

ค้นหาคำที่แตกต่างกัน

หากเราต้องการค้นหาคำที่แตกต่างกันเราสามารถใช้คำสั่ง egrep ในการค้นหาได้เป็น
egrep -w 'word1|word2' file

ตรวจสอบว่ามีคำซ้ำกี่ครั้ง

เราสามารถตรวจสอบได้ว่าคำที่เราค้นหานั้นถูกพบในไฟล์ที่เราต้องการค้นหาจำนวนกี่ครั้ง จะใช้ -c option ซึ่งจะใช้คำสั่งเป็น
grep -c 'sec' /path/to/file

แสดงว่าอยู่บรรทัดไหน

โดยปกติแล้วจะไม่มีการบอกว่าคำที่เราค้นหาพบนั้นอยู่บรรทัดไหน หากเราต้องการให้ grep บอกด้วยว่าเจอที่บรรทัดเท่าไหร่ สามารถใช้ -n option ได้ โดยจะใช้คำสั่งเป็น
grep -n 'root' /etc/passwd

คัดกรอง output ของคำสั่งใดๆ

นอกเหนือจากการใช้งานเพื่อหาคำจากไฟล์ใดๆแล้ว คำสั่ง grep สามารถใช้ในการกรอง output ของคำสั่งได้ด้วย โดยใช้คู่กับ shell pipes หรือก็คือ | โดยในที่นี้จะคัดกรองคำว่า ls จาก history จะใช้คำสั่งเป็น
history | grep ls
Screen Shot 2562-08-24 at 09.50.58.png
ยกตัวอย่างเพิ่มเติมเช่นการอ่านไฟล์ /proc/cpuinfo จากนั้น filter ให้เหลือเฉพาะ Model เท่านั้น
cat /proc/cpuinfo | grep "model name"
Screen Shot 2562-08-24 at 09.53.06.png

Comments

Popular Posts