Eu sei que posso converter arquivos PDF em arquivos de texto um por um como este:
$ pdftotext filename.pdf
Mas existe um único comando que faria essa conversão sem especificar nomes de arquivos separados para converter todos eles?
Vejo aqui, na Wikipedia , que "caracteres curinga (*), por exemplo, $ pdftotext * pdf, para converter vários arquivos, não podem ser usados porque o pdftotext espera apenas um nome de arquivo".
xargs
geralmente é uma solução rápida para executar o mesmo comando várias vezes, com apenas uma pequena alteração a cada vez. A-n1
opção garante que apenas um arquivo pdf seja passado para o pdftotext por vez.Edit: Se você está preocupado com espaços em nomes de arquivos e outros, você pode usar esta alternativa:
fonte
ls *.pdf | xargs -L1 -I% pdftotext % %.txt
escreva um script bash
ou digite-o em um comando de uma linha da seguinte maneira:
for f in *.pdf; do pdftotext "$f"; done
Eu espero que isso ajude. Não tenho um grande grupo de .pdfs para testar isso, mas uso essa estratégia para converter meus arquivos .flac em arquivos .ogg.
fonte
Devo agradecer primeiro a Sam e Ryan Thompson , bem como a todos os outros respondentes - pois minha resposta aqui não passa de uma variação relacionada à possibilidade de adicionar suas soluções às ações personalizadas de Thunar:
portanto, como qualquer comando do terminal, um comando para converter em texto todos os arquivos pdf em uma pasta pode ser colocado na lista de ações personalizadas no gerenciador de arquivos Thunar
O comando que existe
find . -name '*.pdf' -print0 | xargs -0 -n1 pdftotext
(vindo de Ryan Thompson ) é o que eu prefiro usar, mas tem uma virada desagradável ... veja abaixo ...... é um comando engraçado, que deve ser usado com cuidado: é feito para converter em texto todo o pdf na pasta em que é disparado, portanto, se for disparado por engano na pasta inicial, haverá alguns indesejados efeitos: todos os seus PDFs serão convertidos em texto!
(Eu testei assim: criei uma pasta chamada "test" na área de trabalho e nela um arquivo pdf e uma série de pastas dentro de pastas (
/Desktop/test/a/b/c/e/f/g/h/i
) cada uma contendo o mesmo pdf. A execução desse comando/Desktop/test
converte todos os pdfs em pasta "i".)(Gostaria de receber comentários sobre como ajustar esse comando para evitar esse risco.)
Substituindo isso pelo outro (
for file in *.pdf; do pdftotext "$file" "$file.txt"; done
) vindo de Sam , o problema é evitado.Mas, em certos casos, pode-se desejar exatamente o que a solução de Ryan faz!
fonte
find
comando procure nos subdiretórios usando-maxdepth 1
. Além disso, ao colocá-lo no recurso de ações personalizadas do Thunar, você provavelmente deve substituirfind .
porfind %F
para permitir que o Thunar passe corretamente os caminhos dos diretórios selecionados.Este gera sample.pdf.txt .
Tentei usar este, como sugerido pelo usuário2357111317 e também incluo -layout para preservar o layout do texto
fonte