Las utilidades de línea de comandos, como grep y ack-grep, son excelentes para buscar archivos de texto sin formato en busca de patrones que coincidan con una expresión regular específica. Pero, ¿alguna vez ha intentado usar estas utilidades para buscar patrones en un archivo PDF? ¡Pues no! No obtendrá ningún resultado ya que estas herramientas no pueden leer archivos PDF; solo leen archivos de texto sin formato.
pdfgrep, como sugiere el nombre, es una pequeña utilidad de línea de comandos que permite buscar texto en un archivo PDF sin abrir el archivo. Es increíblemente rápido, más rápido que la búsqueda proporcionada por prácticamente todos los visores de documentos PDF. Una gran distinción entre grep y pdfgrep es que pdfgrep opera en páginas, mientras que grep opera en líneas. También imprime una sola línea varias veces si se encuentra más de una coincidencia en esa línea. Veamos cómo usar exactamente la herramienta.
Instalación
Para Ubuntu y otras distribuciones de Linux basadas en Ubuntu, es bastante simple:
Para otras distribuciones, solo proporcione pdfgrep
como entrada para el administrador de paquetes, y eso debería instalarlo. También puede consultar el proyecto Página de GitLaben caso de que quieras jugar con el código.
La prueba de funcionamiento
Ahora que tiene la herramienta instalada, hagamos una prueba. El comando pdfgrep toma este formato:
pdfgrep [OPTION...] PATTERN [FILE...]
OPCIÓN es una lista de atributos adicionales para dar el comando, como -i
o --ignore-case
que ignoran la distinción de mayúsculas y minúsculas entre el patrón regular especificado y el que una vez coincidió con él en el archivo.
PATRÓN es solo una expresión regular extendida.
EXPEDIENTE es solo el nombre del archivo, si está en el mismo directorio de trabajo, o la ruta al archivo.
Ejecuté el comando en la documentación oficial de Python 3.6. La siguiente imagen es el resultado.
Los resaltados en rojo indican todos los lugares donde se encontró la palabra «cola». Paso -i
como opción al comando se incluyeron coincidencias de la palabra “Cola”. Recuerde, el caso no importa cuando -i
se pasa como una opción.
Extras
pdfgrep tiene bastantes opciones interesantes para usar. Sin embargo, cubriré solo algunos aquí.
-c
o--count
: esto suprime la salida normal de partidos. En lugar de mostrar la salida larga de las coincidencias, solo muestra un valor que representa la cantidad de veces que se encontró la palabra en el archivo.-p
o--page-count
: esta opción imprime los números de página de coincidencias y el número de ocurrencias del patrón en la página-m
o--max-count
[number]: especifica el número máximo de coincidencias. Eso significa que cuando se alcanza el número de coincidencias, el comando deja de leer el archivo.
La lista completa de opciones admitidas se puede encontrar en las páginas man o en pdfgrep en línea documentacion. No olvide que pdfgrep puede buscar varios archivos al mismo tiempo, en caso de que esté trabajando con algunos archivos masivos. El color de resaltado de coincidencia predeterminado se puede cambiar modificando la variable de entorno GREP_COLORS.
Conclusión
La próxima vez que piense en abrir un archivo PDF para buscar cualquier cosa. piensa en usar pdfgrep. La herramienta es útil y le ahorrará tiempo.