Como exportar arquivos para outro diretório (Poppler - pdftotext)

3

Eu tenho um diretório com um número muito grande de PDFs que estou convertendo em documentos * .txt com Poppler pdftotext . Eu tenho o seguinte comando que faz a conversão de todos os arquivos.

for f in *.pdf; do pdftotext $f; done

Os PDFs estão em um dispositivo de armazenamento externo sem nenhum espaço adicional. Como posso redirecionar a saída para um diretório diferente? Ou seja, quando cada PDF é convertido, ele é gravado em outro local, e não no mesmo diretório do PDF.

    
por Brian P 05.10.2015 / 16:27

1 resposta

3

Esta foi a solução sugerida por don_crissti, e estou fornecendo uma explicação aqui para usuários que estão apenas começando com Unix e Linux. Sinta-se à vontade para editar, pois este resumo foi escrito por um novato.

for f in *.pdf; do pdftotext "$f" "/path/to/some/dir/${f%.*}.txt"; done

Agora, vamos examinar cada comando. Aqui está um padrão para loop que é usado para iterar todos os arquivos no diretório de trabalho atual. %código%. Nesse comando, for f in *.pdf é usado como o índice. O próximo comando converte o PDF em texto. Isso pressupõe que o usuário já tenha instalado f :

pdftotext "$f" "/path/to/some/dir/${f%.*}.txt"

poppler é usado para armazenar o nome do arquivo de entrada PDF e "$f" especifica o caminho para o arquivo de saída TXT , ou seja, o diretório de destino "/path/to/some/dir/${f%.*}.txt" e o nome do arquivo de saída /path/to/some/dir/ , que é basicamente o nome do arquivo de entrada ( ${f%.*}.txt ) com a extensão "$f" removida do nome do arquivo via substituição de parâmetro e um sufixo .pdf anexado.

    
por 07.10.2015 / 15:24