Sé que puedo convertir archivos PDF a archivos de texto uno por uno como este:
$ pdftotext filename.pdf
Pero, ¿hay un solo comando que realice esa conversión sin especificar nombres de archivo separados para convertirlos a todos?
Veo aquí, en Wikipedia , que "Los comodines (*), por ejemplo $ pdftotext * pdf, para convertir múltiples archivos, no se pueden usar porque pdftotext solo espera un nombre de archivo".
xargs
A menudo es una solución rápida para ejecutar el mismo comando varias veces con solo un pequeño cambio cada vez. La-n1
opción asegura que solo se pase un archivo pdf a pdftotext a la vez.Editar: si le preocupan los espacios en los nombres de archivo y demás, puede usar esta alternativa:
fuente
ls *.pdf | xargs -L1 -I% pdftotext % %.txt
escribir un script bash
o escríbalo en un comando de una línea de la siguiente manera:
for f in *.pdf; do pdftotext "$f"; done
Espero que esto ayude. No tengo un gran grupo de archivos .pdf para probar esto, pero uso esta estrategia para convertir mis archivos .flac en archivos .ogg.
fuente
Primero tengo que agradecer a Sam y a Ryan Thompson , así como a todos los demás respondedores; mi respuesta aquí no es más que una variación relacionada con la posibilidad de agregar sus soluciones a las acciones personalizadas de Thunar:
entonces, como cualquier comando de terminal, un comando para convertir a texto todos los archivos pdf dentro de una carpeta se puede colocar en la lista de acciones personalizadas en el administrador de archivos Thunar
El comando que hay
find . -name '*.pdf' -print0 | xargs -0 -n1 pdftotext
, (proveniente de Ryan Thompson ) es el que prefiero usar, pero tiene un giro desagradable ... ver más abajo ...... es un comando divertido, que debe usarse con cuidado: está hecho para convertir a texto todos los archivos PDF dentro de la carpeta donde se dispara, por lo tanto, si se dispara por error en la carpeta de inicio, tendrá algunos no deseados efectos: ¡todos sus archivos PDF se convertirán en texto!
(Lo probé así: creé una carpeta llamada "prueba" en el escritorio y en ella un archivo pdf y una serie de carpetas dentro de carpetas (
/Desktop/test/a/b/c/e/f/g/h/i
) cada una conteniendo el mismo pdf. Ejecutar ese comando/Desktop/test
ha convertido todos los archivos PDF a eso en carpeta "i".)(Agradecería comentarios sobre cómo ajustar este comando para evitar ese riesgo).
Reemplazando eso con el otro (
for file in *.pdf; do pdftotext "$file" "$file.txt"; done
) proveniente de Sam , se evita el problema.¡Pero en ciertos casos uno podría desear exactamente lo que hace la solución de Ryan!
fuente
find
comando busque en subdirectorios utilizando-maxdepth 1
. Además, al ponerlo en función de las acciones personalizadas de Thunar, probablemente debería reemplazarfind .
afind %F
permitir Thunar para pasar correctamente las rutas de los directorios seleccionados.Éste genera sample.pdf.txt .
He intentado utilizar éste, como sugieren user2357111317 y también incluyo -layout a conservar el diseño del texto
fuente