Altere o tipo de arquivo usando zenity

0

Tendo zero experiência com scripts de qualquer tipo, peço desculpas se essa questão for simples demais para ser permitida aqui.

Eu descobri zenity, que eu acho que é muito útil, pois minha memória é inútil, por isso, se não estiver no menu (por exemplo, aplicativos de linha de comando), então eu esqueço que os tenho ou simplesmente esqueço como usá-los. / p>

De qualquer forma,

O pdftotext é um aplicativo que eu tenho agora, e posso ver que eu o uso de forma justa no futuro. Então eu uso um shell script chamando zenity, para poder colocar o pdftotext no menu, e pronto ele funciona.

Eu quero brincar, sou esperto, então seria legal se eu conseguisse que o arquivo de texto de saída ($ szSavePath) marcasse automaticamente ".txt" no final.

Ou até mesmo escolha o nome do arquivo original ($ file), remova o arquivo .pdf e substitua-o por .txt como o nome da saída.

Pode ser feito?

#!/bin/bash
file="$(zenity --title "PDF to Text:         Select a File to convert" --file-selection)"
szSavePath=$(zenity --file-selection --save --confirm-overwrite);echo $szSavePath
pdftotext "$file" $szSavePath
    
por user256787 03.06.2016 / 17:29

1 resposta

1

Se file contiver foo.pdf , você poderá remover o .pdf usando ${file%%.pdf} .

Com szSavePath , você pode testar se ele contém .txt e adicioná-lo se não tiver:

szSavePath=$(zenity --file-selection --save --confirm-overwrite)
[[ $szSavePath != *.txt ]] && szSavePath="$szSavePath.txt"

Você pode fornecer o nome de arquivo do PDF com .txt em vez de .pdf como nome de arquivo padrão, usando a opção --filename :

szSavePath=$(zenity --file-selection --save --confirm-overwrite --filename="${file%%.pdf}.txt")

Além disso, lembre-se de citar suas variáveis, para que nomes de arquivos com espaços e outros caracteres especiais não causem problemas:

pdftotext "$file" "$szSavePath"
    
por muru 06.06.2016 / 21:32