- Ein leistungsfähiges, sehr schnelles, benutzerfreundliches und mit
grep kompatibles Tool zur Suche nach Dateimustern
- Beschleunigt die Dateisystemsuche mit einem neuen Datei-Indexer und ermöglicht die Suche über eine TUI (textbasierte Benutzeroberfläche) oder über die Kommandozeile mit mit
grep kompatiblen Optionen
- Unterstützt Musterbefehle ähnlich wie bei der Google-Suche
- Unterstützt Fuzzy-Suche (erweitert die Erkennung auf Wörter mit einem oder zwei abweichenden Zeichen im Muster oder liefert optimierte Suchergebnisse)
- Kann auf vielen Systemen installiert werden, darunter MacOS, Windows, Alpine, Android Termux, Arch, CentOS, Debian, Fedora, FreeBSD, NetBSD, OpenSUSE und RHEL
- Kann verschachtelte zip/tar/pax/cpio-Archive, komprimierte Dateien, Binärdateien, PDF, doc, docx und viele weitere Dateiformate durchsuchen und als Hexdump ausgeben
Befehle
- Mit den Befehlen
ug und ugrep lassen sich Muster in Dateien suchen; ug verwendet dabei eine .ugrep-Konfigurationsdatei im Arbeitsverzeichnis oder im Home-Verzeichnis.
ug --save-config OPTIONS speichert unter Verwendung der aktuellen .ugrep-Konfiguration eine neue .ugrep-Datei im Arbeitsverzeichnis.
ugrep verwendet keine .ugrep-Konfigurationsdatei und funktioniert am besten in Shell-Skripten.
- Verschiedene Beispiele zeigen die Nutzung für Pattern-Matching in Dateien und Verzeichnissen, das Speichern von Konfigurationsdateien, Google-Suche und mehr.
Optionen
ugrep ist mit GNU grep kompatibel und unterstützt GNU-grep-Kommandozeilenoptionen.
- Es bietet zahlreiche Optionen für Dateilisten, Hervorhebung von Treffern, Trefferinformationen, Trefferkontext und mehr.
- Dazu gehören Funktionen wie Pattern-Matching-Modi, interaktive TUI, Dateisuche und Fuzzy-Suche.
Archive und komprimierte Dateien
- Mit der Option
-z können Archive, Tarballs und komprimierte Dateien durchsucht werden.
- Verschiedene Optionen unterstützen die Suche in Archiven bis zu einer bestimmten Verschachtelungstiefe, das Ignorieren von Binärdateien sowie die Suche anhand von Dateitypen und Glob-Mustern.
Binärdateien und Geräte
- Enthält Optionen zum Ignorieren oder zum Hexdump von Binärdateien sowie Optionen zum Durchsuchen spezieller Geräte.
Ausschließen und Einschließen
- Bietet Optionen zur Steuerung des Ignorierens von Binärdateien, zum Folgen symbolischer Links, zum Einschließen versteckter Dateien sowie zur Suche nach bestimmten Dateitypen und Glob-Mustern.
Formatierte Ausgabe
- Unterstützt verschiedene Ausgabeformate wie CSV, JSON, XML und benutzerdefinierte Formate.
Hübsche Extras, mehr oder weniger
- Umfasst Optionen für eine ansprechendere Ausgabe, Farben, Hyperlinks, Pager, Tags, Trefferersetzung und mehr.
Hilfe erhalten
- Über die Option
--help erhält man die benötigte Hilfe; außerdem gibt es detaillierte Hilfen zu verschiedenen Optionen, Mustern, Globs und Filtern.
Meinung von GN⁺
ugrep bietet deutlich leistungsfähigere Funktionen als bestehende grep-Werkzeuge und verbessert durch vielfältige Dateiformate und Pattern-Matching-Optionen das Sucherlebnis der Nutzer.
- Mit der benutzerfreundlichen TUI und Konfigurationsdateien lässt sich eine individuell angepasste Suchumgebung aufbauen.
- Das Tool ist für Softwareentwickler oder Systemadministratoren sehr nützlich, um große Codebasen oder Dateisysteme effizient zu durchsuchen und zu analysieren.
2 Kommentare
Ich nutze
ripgrepbereits intensiv und habe beim Nachschauen, worin genau die Unterschiede liegen, diesen Beitrag gefunden.https://reddit.com/r/rust/…
Es ist zwar eine Geschichte von vor einigen Jahren, aber bei
ugrepheißt es,ugrepsei schneller alsripgrep, während beiripgrepbehauptet wird,ripgrepsei schneller alsugrep— also: Welche Aussage stimmt denn nun? Die Kommentare dort sind wirklich beeindruckend.Darin wurden die von
ugrepdurchgeführten Tests erneut ausgeführt und die Ergebnisse zusammengefasst.Kurz zusammengefasst scheint das Ergebnis zu sein, dass in den meisten Fällen
ripgreptatsächlich schneller ist und dassugrepdie Tests offenbar auf eine Weise durchgeführt hat, die den eigenen Stärken entgegenkam. (Selbst wenn man mit den vonugrepverwendeten Testinhalten testet, liefertripgrepoft die besseren Ergebnisse; außerdem entsteht der Verdacht, dassugrepdie Testgröße verkleinert hat, um die durch Rauschen verursachten Abweichungen zu vergrößern und so nur für sich vorteilhafte Resultate herauszuziehen.)Hacker-News-Kommentare
Es gibt einen Thread zum Leistungsvergleich mit ripgrep(ripgrep). Außerdem werden einige textbasierte Benutzeroberflächen (TUI) auf Basis von ripgrep vorgestellt.
Es wird der Wunsch nach einem Tool geäußert, das eine Echtzeitvorschau für Shell-Pipelines bietet und in die Shell integriert ist. In zsh wurde mit dem zle-Widget
accept-and-holdeine ähnliche Funktion umgesetzt, aber es wäre noch wünschenswerter, Ergebnisse in Echtzeit zu sehen.Es wird Interesse an Unterstützung für einen n-Gramm-Indexer geäußert. ripgrep plante diese Funktion ebenfalls, hat sie aber noch nicht umgesetzt. Für große Codebasen wurde csearch verwendet, das jedoch mehrere Einschränkungen hat. Der neue Indexer benötigt 86 Sekunden, um den Linux-Kernel-Tree zu indexieren, und ist damit deutlich langsamer als das cindex-Tool von csearch.
Ein wichtiger Hinweis zur Kompatibilität: Tatsächlich ist es nicht kompatibel, und es wurden innerhalb weniger Sekunden Optionen gefunden, deren Verhalten sich vollständig von der GNU-Version unterscheidet.
Man sollte sich auch grab von Sebastian Krahmer ansehen.
Es wird infrage gestellt, warum neue Tools nicht dem XDG-Standard folgen. Die Einhaltung des XDG-Standards kann verhindern, dass das Home-Verzeichnis mit unzähligen Konfigurationsdateien überladen wird.
Positive Einschätzung zu Ugrep, das in Debian-basierten Repositories verfügbar ist. Besonders nützlich ist die Fuzzy-Match-Funktion, die Tippfehler oder Abweichungen von 1–2 Zeichen toleriert.
Zufriedenheit mit der Funktion zum Suchen mehrerer Begriffe innerhalb von Dateien, auch als "Datei-Googeln" bekannt. Früher wurde dafür ein eigenes Skript geschrieben, aber diese Funktion macht das überflüssig. Die TUI soll ebenfalls ausprobiert werden. Bisher wurde ripgrep verwendet, aber es soll verglichen werden, ob dieses Tool ripgrep ersetzen kann.