rgpipe es un solo script bash/sh y un alias para usar con RipGrep para buscar a través de una miríada de tipos de archivos que de otro modo no son amigables con GREP. Úselo con el comando -pre de RipGrep que le permite a RipGrep procesar selectivamente archivos antes de buscar.
El uso más básico es señalar rgpipe en algún archivo, e intentará imprimir el contenido de dicho archivo a Stdout.
rgpipe MyFancyExcelFile.xlsx
El uso más involucrado es como un filtro frente a RipGrep para intentar sistemáticamente GREP a través del contenido de archivos no de texto variados tanto como lo haría con archivos de texto. El encantamiento básico parece:
rg --pre-glob '*.{xlsx,pptx,docx,pdf}' --pre rgpipe "$YourSearchTermHere"
Escribí una esencia extendida sobre cómo usarlo aquí
Esa esencia solo es útil debido a la amable nota de Burntsushi en este comentario de noticias del hacker explicando cómo funciona rg --pre-glob .
Esto ayuda a Grep a través de:
unzip y sedstringsunzip y sedpdftottext de popplerw3m Lynx y sus amigos también funciona. No es 100% necesario.unzip y w3m para epub7zip y w3m para chm Ubuntu Wants: sudo apt install poppler-utils p7zip w3m unzip
Termux Wants: pkg install poppler p7zip w3m
Suponiendo que RGPipe esté en la ruta, use/ruta/a/rgpipe si no es así
rg --pre rgpipe YourSearchTermHereArriba usa RGPipe incluso cuando no es necesario, lo cual es lento, RipGrep puede usarlo selectivamente con-PRE-GLOB
rg --pre-glob ' *.{xlsx,pptx,docx,pdf} ' --pre rgpipe YourSearchTermHereUn pre -global más completo:
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 YourSearchTermHereUn alias porque eso es mucho tipeo
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 "Paso 1: use RGPipe para hacer archivos de texto Sidecar
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" '
}
Realice el texto sidecars para todos los archivos con extensión PDF en el directorio actual utilizando la función definida anteriormente.
find-rgpipe-type pdfPaso 2: use RipGrep para buscar esos archivos
rg YourSearchTermHere1 - Este comentario de noticias del hacker
2 - El script previo al procesamiento que es la plantilla en la que agregué algunos tipos de archivos más
3 - Midnight Commander tiene excelentes guiones sobre este tema
4 - Menos Pipe, por supuesto
5 - RGA es una herramienta a base de óxido que hace algo similar
rgpipe Porque la idea es similar a Lesspipe.