ripgrep (rg) – เครื่องมือค้นหาข้อความที่เร็วที่สุดสำหรับโปรแกรมเมอร์
ripgrep คือเครื่องมือค้นหาข้อความในไฟล์แบบ recursive ที่เร็วกว่า grep, ag, ack หลายเท่า รองรับ regex เคารพ .gitignore และข้ามไฟล์ binary โดยอัตโนมัติ
คัดมาจาก Telegram · อัปเดต 6 พ.ย. 2569
ดูโค้ดต้นทางส่วนประกอบ
developer-tools · performance · grep · cli · search
ripgrep (rg) คืออะไร
ripgrep หรือเรียกสั้นๆ ว่า rg คือเครื่องมือค้นหาข้อความในไฟล์แบบ line-oriented ที่สามารถค้นหาแบบ recursive ในทุก directory ด้วย regex pattern ที่กำหนด
ทำไมถึงมีประโยชน์
- เร็วมาก – จาก benchmark บน Linux kernel source tree เร็วกว่า git grep ถึง 3 เท่า
- ใช้งานง่าย – เคารพ
.gitignoreอัตโนมัติ ข้าม hidden files และ binary files โดยไม่ต้องตั้งค่า - รองรับ Unicode – ค้นหาข้อความภาษาไทยหรือภาษาอื่นได้ถูกต้อง
- มีให้ทุก platform – Windows, macOS, Linux พร้อม binary ดาวน์โหลดได้ทันที
- Regex ทรงพลัง – รองรับ regex syntax ที่หลากหลาย
เริ่มต้นใช้งาน
ติดตั้ง:
# macOS
brew install ripgrep
# Ubuntu/Debian
apt install ripgrep
# Arch Linux
pacman -S ripgrep
# Windows (Chocolatey)
choco install ripgrep
ตัวอย่างการใช้งาน:
# ค้นหาคำว่า "TODO" ในไฟล์ทั้งหมด
rg TODO
# ค้นหาแบบ case-insensitive
rg -i "fixme"
# ค้นหาเฉพาะไฟล์ .js
rg "function" -t js
# ค้นหาแบบ regex pattern พร้อมแสดงเลขบรรทัด
rg -n "[A-Z]+_SUSPEND"
# ค้นหาทั้ง hidden files และไม่สนใจ gitignore
rg -uuu "pattern"
# ค้นหาเฉพาะ whole word
rg -w "function"
ผลการเปรียบเทียบประสิทธิภาพ
เปรียบเทียบเครื่องมือค้นหาข้อความ
ripgrep (rg)
- เร็วที่สุด (0.082s)
- เคารพ .gitignore อัตโนมัติ
- รองรับ Unicode เต็มรูปแบบ
- ข้าม binary files โดยอัตโนมัติ
- ต้องติดตั้งเพิ่มเติม (ไม่ built-in)
git grep
- มีใน Git อยู่แล้ว
- ทำงานร่วมกับ Git ได้ดี
- ช้ากว่า rg ถึง 3 เท่า (0.273s)
- รองรับ Unicode ไม่ดี (ช้า 32 เท่าถ้าเปิด)
ag (Silver Searcher)
- เร็วกว่า ack มาก
- ใช้งานง่าย
- ช้ากว่า rg ถึง 5 เท่า (0.443s)
- พัฒนาช้าลง
ack
- เขียนด้วย Perl ติดตั้งง่าย
- รองรับ file type มาก
- ช้ามาก (2.935s – ช้ากว่า rg 36 เท่า)
- ให้ผลลัพธ์คนละจำนวนกับเครื่องมืออื่น
ตัวเลขจาก benchmark บน Linux kernel source tree ด้วย Intel i9-12900K 5.2 GHz
เหมาะสำหรับ
- โปรแกรมเมอร์ที่ต้องค้นหาโค้ดในโปรเจกต์ขนาดใหญ่
- ทีมที่ใช้ Git และต้องการเครื่องมือที่เคารพ
.gitignore - ผู้ที่ต้องการความเร็วสูงสุดในการค้นหาข้อความ

