rgpipe ist ein einzelnes Bash/SH -Skript und ein Alias, das mit RIPGrep verwendet werden soll, um eine Vielzahl von Dateitypen zu durchsuchen, die ansonsten nicht grep -freundlich sind. Verwenden Sie es mit dem Befehl ripGreps -PRE, mit dem RipGrep Dateien vor der Suche selektiv verarbeiten kann.
Die grundlegendste Verwendung besteht darin, rgpipe auf eine Datei zu richten, und es wird versuchen, den Inhalt dieser Datei auf STDOut zu drucken.
rgpipe MyFancyExcelFile.xlsx
Die involviertere Nutzung ist ein Filter vor RipGrep, um systematisch zu versuchen, den Inhalt verschiedener Nicht-Text-Dateien wie Sie eine Textdateien zu durchführen. Die grundlegende Beschwörung sieht aus wie:
rg --pre-glob '*.{xlsx,pptx,docx,pdf}' --pre rgpipe "$YourSearchTermHere"
Ich habe einen erweiterten Wild darüber geschrieben, wie man ihn hier benutzt
Dieser GIST ist nur aufgrund der Art von Burntsushi in diesem Hacker-Nachrichten Kommentar nützlich, in dem erklärt wird, wie rg --pre-glob funktioniert.
Dies hilft Grep durch:
unzip und sedstringsunzip und sedpdftottext von popplerw3m Luchs und Freunde auch. Nicht 100% notwendig.unzip und w3m für EPUB entpucken7zip und w3m für CHM Ubuntu will: sudo apt install poppler-utils p7zip w3m unzip
Termux Wants: pkg install poppler p7zip w3m
Unter der Annahme, dass RGPipe im Pfad ist, verwenden Sie/Pfad/to/rgpipe, wenn dies nicht der Fall ist
rg --pre rgpipe YourSearchTermHereOben verwendet Rgpipe auch dann, wenn es nicht benötigt wird, was langsam ist. RIPGREP kann es selektiv mit--Pre-Glob verwenden
rg --pre-glob ' *.{xlsx,pptx,docx,pdf} ' --pre rgpipe YourSearchTermHereEin gründlichere Pre -Glob:
rg --pre-glob ' *.{pdf,xl[tas][bxm],xl[wsrta],do[ct],do[ct][xm],p[po]t[xm],p[op]t,html,htm,xhtm,xhtml,epub,chm,od[stp]} ' --pre rgpipe YourSearchTermHereEin Alias, weil das viel tippt
alias rgg= " rg -i -z --max-columns-preview --max-columns 500 --hidden --no-ignore --pre-glob
'*.{pdf,xl[tas][bxm],xl[wsrta],do[ct],do[ct][xm],p[po]t[xm],p[op]t,html,htm,xhtm,xhtml,epub,chm,od[stp]}' --pre rgpipe "Schritt 1: Verwenden Sie RGPipe, um Text -Sidecar -Dateien zu erstellen
find-rgpipe-type () {
find ` pwd ` -type f -iname " *. $1 " -exec sh -c ' for f; do rgpipe "$f" > "${f%.*}.txt"; done ' _ {} +
}
# or get fancy with xargs for multithreaded goodness
find-rgpipe-type-xargs () {
find " $( pwd ) " -type f -iname " *. $1 " -print0 | xargs -0 -P0 -n 1 -I {} sh -c ' rgpipe "{}" > "{}.txt" '
}
Machen Sie Text -Sidecars für alle Dateien mit der PDF -Erweiterung im aktuellen Verzeichnis mit der oben definierten Funktion.
find-rgpipe-type pdfSchritt 2: Verwenden Sie RipGrep, um diese Dateien zu durchsuchen
rg YourSearchTermHere1 - Dieser Hacker -Nachrichtenkommentar
2 - Das vorverarbeitete Skript, das die Vorlage ist, in die ich einige weitere Dateitypen hinzugefügt habe
3 - Mitternachtskommandant hat großartige Skripte zu diesem Thema
4 - Natürlich weniger pipe
5 - RGA ist ein rostbasiertes Werkzeug, das etwas Ähnliches tut
rgpipe , weil die Idee wenigerPipe ähnlich ist.