ของดีอยากบอกต่อ: ค้นหาข้อความในไฟล์แบบ Interactive อย่างรวดเร็วด้วย ugrep

Datafarm
Dec 9, 2020

โดยปกติเวลาใช้งานระบบปฏิบัติการตระกูล Linux หรือใช้งาน MacOS ถ้าต้องการจะค้นหาข้อความก็มักจะนึกถึงคำสั่งตระกูล grep กันเป็นอันดับแรก ๆ ตัวอย่างการใช้งานก็อย่างเช่น

Directory Structure ที่เราจะใช้สาธิตให้ดูนะครับ

อันนี้ก็จะเป็นตัวอย่างไฟล์ที่อยู่ภายในด้านในคร่าว ๆ นะครับ ที่จะมีไฟล์ docx, และพวก Source Code ของ WordPress

จากตัวอย่างด้านล่างก็จะเป็นคำสั่ง grep ที่ใช้หาไฟล์และบรรทัดที่มีคำว่า db_password ที่อยู่ภายใต้ Directory ปัจจุบัน

การค้นหาก็จะต้องมานั่งไล่พิมพ์หาทีละส่วนตามที่ต้องการ ซึ่งแต่แล้ววันหนึ่งแอดก็ไปเจอใน twitter ที่เขาแนะนำโปรแกรมที่ชื่อว่า ugrep ที่ใช้ในการขึ้นหาข้อความ อารมณ์เดียวกับการใช้ grep นั้นแหละ แต่ว่าเจ้าตัวนี้จะมีความสะดวกสบาย และมีการใช้งานที่หลากหลาย โดยปกติถ้าแอดค้นหาคำเพื่อมาจัดท่ากดคอมโบกับสคริปต์ตัวอื่นก็จะใช้ grep ปกตินั่นแหละ แต่ถ้าต้องการค้นหาอะไรบางอย่างที่น่าสนใจ และยังไม่ได้มีรูปแบบการหาค้นหาที่ชัดเจนก็จะใช้เจ้าตัว ugrep นี้แหละเพื่อช่วยไล่สโคปของการทำงานที่ต้องการ

***เจ้าตัวนี้มีฟังก์ชันการใช้งานต่าง ๆ อีกจำนวนมากสามารถอ่านรายละเอียดเพิ่มเติมได้ที่ลิงก์ด้านล่างเลย***

วันนี้แอดก็จะมาแนะนำการใช้งานเพียงส่วนนึงที่คิดว่าสามารถนำไปใช้ได้ทันที เช่น

ugrep -Q -j -n -A 5 -B 5 -I

Options

- Q คือ Interactive Query

- j คือ ไม่สนใจตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่

- n คือ แสดงหมายเลขบรรทัด

- A 5 คือ แสดง 5 บรรทัดก่อนบรรทัดที่เจอ

- B 5 คือ แสดง 5 บรรทัดหลังบรรทัดที่เจอ

- I คือ ไม่สนใจไฟล์ Binary

ซึ่งผลลัพธ์ที่ได้ก็จะเป็นดังภาพด้านล่าง

โดยคำที่จะค้นหารองรับ Regular Expression อีกด้วย

นอกจากนี้เราสามาระบุประเภทของไฟล์หรือนามสกุลที่ต้องการจะค้นหาได้ ตัวอย่าง

 ugrep -Q -j -n -I -C *.php ugrep -Q -j -n -I -t php

และอีกฟังก์ชันการค้นหาที่น่าสนใจเลยก็คือ สามารถค้นหาไฟล์ Document อย่าง Microsoft Word ได้ ด้วย option ที่ชื่อว่า filter

ugrep — filter=’docx:pandoc % -’ Datafarm

แอดเองก็หวังว่าโปรแกรม ugrep ที่ได้แนะนำไปนั้นจะเป็นประโยชน์ไม่มากก็น้อยกับผู้อ่านนะครับ ถ้าเห็นว่าบทความนี้มีประโยชน์ฝากกดไลค์ กดแชร์แบ่งปันความรู้ให้กับคนรอบตัวด้วยนะ

ฝากติดตามบทความจากดาต้าฟาร์มในทุกวันพุธกันด้วยนะ

--

--

No responses yet