11 คะแนน โดย GN⁺ 2023-12-31 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือค้นหารูปแบบในไฟล์ที่ทรงพลัง เร็วมาก ใช้งานเป็นมิตร และเข้ากันได้กับ grep
  • เร่งความเร็วการค้นหาในระบบไฟล์ด้วยตัวทำดัชนีไฟล์แบบใหม่ และสามารถค้นหาได้จาก TUI (ส่วนติดต่อผู้ใช้แบบข้อความ) หรือจากบรรทัดคำสั่งด้วยตัวเลือกที่เข้ากันได้กับ grep
  • รองรับคำสั่งรูปแบบคล้ายกับการค้นหาของ Google
  • รองรับการค้นหาแบบ Fuzzy (ขยายให้รู้จำคำที่สะกดผิดจากรูปแบบได้หนึ่งหรือสองตัวอักษร หรือให้ผลการค้นหาที่เหมาะสมที่สุด)
  • ติดตั้งได้บนระบบหลากหลาย เช่น MacOS, Windows, Alpine, Android Termux, Arch, CentOS, Debian, Fedora, FreeBSD, NetBSD, OpenSUSE, RHEL และอื่น ๆ
  • สามารถค้นหาและทำเฮกซ์ดัมป์กับรูปแบบไฟล์หลากหลาย เช่น อาร์ไคฟ์ zip/tar/pax/cpio แบบซ้อนกัน ไฟล์บีบอัด ไฟล์ไบนารี PDF, doc, docx เป็นต้น

คำสั่ง

  • สามารถใช้คำสั่ง ug และ ugrep เพื่อค้นหารูปแบบในไฟล์ได้ โดย ug จะใช้ไฟล์กำหนดค่า .ugrep ที่อยู่ในไดเรกทอรีทำงานหรือโฮมไดเรกทอรี
  • ug --save-config OPTIONS จะบันทึกไฟล์ .ugrep ใหม่ลงในไดเรกทอรีทำงานโดยใช้ค่ากำหนด .ugrep ปัจจุบัน
  • ugrep จะไม่ใช้ไฟล์กำหนดค่า .ugrep และทำงานได้ดีที่สุดในเชลล์สคริปต์
  • มีตัวอย่างการใช้งานหลากหลายสำหรับการจับคู่รูปแบบในไฟล์และไดเรกทอรี การบันทึกไฟล์กำหนดค่า การค้นหาแบบ Google และอื่น ๆ

ตัวเลือก

  • ugrep เข้ากันได้กับ GNU grep และรองรับตัวเลือกบรรทัดคำสั่งของ GNU grep
  • มีตัวเลือกหลากหลายสำหรับจัดการรายการไฟล์ การแสดงผลการจับคู่ ข้อมูลของการจับคู่ บริบทของการจับคู่ และอื่น ๆ
  • รวมความสามารถอย่างโหมดจับคู่รูปแบบ, TUI แบบโต้ตอบ, การค้นหาไฟล์, การค้นหาแบบฟัซซี และอื่น ๆ

อาร์ไคฟ์และไฟล์บีบอัด

  • สามารถค้นหาในอาร์ไคฟ์ tarball และไฟล์บีบอัดได้ด้วยตัวเลือก -z
  • รองรับการค้นหาภายในอาร์ไคฟ์ตามระดับที่กำหนด การละเว้นไฟล์ไบนารี และการค้นหาตามชนิดไฟล์และรูปแบบ glob ผ่านตัวเลือกต่าง ๆ

ไฟล์ไบนารีและอุปกรณ์

  • มีตัวเลือกสำหรับละเว้นไฟล์ไบนารีหรือทำเฮกซ์ดัมป์ รวมถึงตัวเลือกสำหรับค้นหาอุปกรณ์พิเศษ

การยกเว้นและการรวม

  • มีตัวเลือกสำหรับควบคุมการละเว้นไฟล์ไบนารี การตาม symbolic link การรวมไฟล์ซ่อน และการค้นหาตามชนิดไฟล์หรือรูปแบบ glob ที่กำหนด

เอาต์พุตแบบจัดรูปแบบ

  • รองรับรูปแบบเอาต์พุตหลากหลาย เช่น CSV, JSON, XML และรูปแบบกำหนดเอง

ของสวยงาม มากขึ้นหรือน้อยลง

  • มีตัวเลือกที่ช่วยให้เอาต์พุตดูดีขึ้น เช่น สี ไฮเปอร์ลิงก์ เพจเจอร์ แท็ก การแทนที่ผลการจับคู่ และอื่น ๆ

การขอความช่วยเหลือ

  • สามารถขอความช่วยเหลือที่ต้องการได้ผ่านตัวเลือก --help พร้อมข้อมูลช่วยเหลืออย่างละเอียดเกี่ยวกับตัวเลือกต่าง ๆ รูปแบบ glob และตัวกรอง

ความเห็นของ GN⁺

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

2 ความคิดเห็น

 
molla 2024-01-02

ผมใช้ ripgrep อยู่เป็นประจำ เลยลองค้นหาว่ามันต่างกันอย่างไร แล้วก็ไปเจอโพสต์นี้เข้า
https://reddit.com/r/rust/…
แม้จะเป็นเรื่องเมื่อหลายปีก่อน แต่ฝั่ง ugrep บอกว่า ugrep เร็วกว่า ripgrep ส่วนฝั่ง ripgrep ก็บอกว่า ripgrep เร็วกว่า ugrep เลยกลายเป็นคำถามว่า สรุปแล้วฝั่งไหนพูดถูก? ซึ่งคอมเมนต์นั้นยอดเยี่ยมมากจริง ๆ
เขาไล่รันทดสอบที่บอกว่าทำใน ugrep ใหม่อีกครั้ง แล้วสรุปผลลัพธ์ไว้
สรุปแบบคร่าว ๆ คือ ในกรณีส่วนใหญ่ดูเหมือนว่า ripgrep จะเร็วกว่าจริง และฝั่ง ugrep เหมือนจะจัดการทดสอบในแบบที่เข้าทางตัวเองมากกว่า (คือแม้จะทดสอบตามเงื่อนไขที่ ugrep ใช้ ฝั่ง ripgrep ก็มักได้ผลลัพธ์ดีกว่าอยู่ดี และยังมีข้อสงสัยว่าฝั่ง ugrep อาจลดขนาดการทดสอบลงเพื่อเพิ่มความคลาดเคลื่อนจาก noise แล้วเลือกหยิบเฉพาะผลที่ออกมาเข้าทางตัวเอง)

 
GN⁺ 2023-12-31
ความคิดเห็นจาก Hacker News
  • มีเธรดเปรียบเทียบประสิทธิภาพกับ ripgrep(ripgrep) และยังมีการแนะนำ text user interface (TUI) ที่อิงกับ ripgrep อยู่หลายตัว

  • มีการแสดงความต้องการเครื่องมือที่ผสานเข้ากับเชลล์และให้การแสดงตัวอย่างแบบเรียลไทม์สำหรับ shell pipeline โดยใน zsh เคยทำฟังก์ชันคล้ายกันด้วยวิดเจ็ต zle accept-and-hold แต่การได้เห็นผลลัพธ์แบบเรียลไทม์จะดีกว่า

  • มีความสนใจในฟีเจอร์รองรับ n-gram indexer โดย ripgrep ก็เคยวางแผนจะมีฟีเจอร์นี้แต่ยังไม่ได้ทำ ใช้ csearch กับโค้ดเบสขนาดใหญ่มาก่อนแต่มีข้อจำกัดหลายอย่าง ส่วน indexer ใหม่นี้ใช้เวลา 86 วินาทีในการทำดัชนีต้นไม้ซอร์สของลินุกซ์เคอร์เนล ซึ่งช้ากว่าเครื่องมือ cindex ของ csearch มาก

  • มีข้อควรระวังสำคัญเรื่องความเข้ากันได้: จริง ๆ แล้วมันไม่ได้เข้ากันได้ และสามารถเจอตัวเลือกที่ทำงานต่างจากเวอร์ชัน GNU อย่างสิ้นเชิงได้ภายในไม่กี่วินาที

  • ควรลองดู grab ของ Sebastian Krahmer ด้วย

  • มีคำถามว่าทำไมเครื่องมือใหม่ ๆ ถึงไม่ทำตามมาตรฐาน XDG ซึ่งถ้าทำตามก็จะช่วยไม่ให้โฮมไดเรกทอรีรกไปด้วยไฟล์ตั้งค่าจำนวนมาก

  • ให้ความเห็นเชิงบวกต่อ Ugrep ที่ใช้งานได้จากรีโพซิทอรีสาย Debian โดยเฉพาะฟีเจอร์ fuzzy match ที่ยอมรับคำพิมพ์ผิดหรือความต่าง 1-2 ตัวอักษรได้ซึ่งมีประโยชน์มาก

  • พอใจกับความสามารถในการค้นหาหลายคำภายในไฟล์เดียวกัน (ที่เรียกว่า "การกูเกิลในไฟล์") ก่อนหน้านี้เคยเขียนสคริปต์เองแต่ฟีเจอร์นี้ทำให้ไม่จำเป็นแล้ว และมีแผนจะลองดู TUI ด้วย เดิมใช้ ripgrep มาตลอด แต่จะลองเปรียบเทียบว่าเครื่องมือนี้แทน ripgrep ได้หรือไม่