Изменить тип файла с помощью zenity

Имея нулевой опыт написания сценариев любого рода, я прошу прощения, если этот вопрос слишком прост, чтобы быть разрешенным здесь.

Я обнаружил, что zenity очень полезен, так как моя память безнадежна, поэтому, если ее нет в меню (например, в приложениях командной строки), тогда я забываю, что они у меня есть, или просто забываю, как их использовать.

Так или иначе.

pdftotext - это приложение, которое у меня сейчас есть, и я вижу, как оно будет использоваться в будущем. Поэтому я использую сценарий оболочки, вызывающий zenity, чтобы иметь возможность вставить pdftotext в меню, и эй до того, как все заработает.

Я хочу пошутить, что я умен, поэтому было бы неплохо, если бы я мог получить выходной текстовый файл ($ szSavePath) для автоматической пометки «.txt» в конце.

Или даже выберите исходное имя файла ($ file), удалите .pdf и замените его на .txt в качестве выходного имени.

Может ли быть сделано?

#!/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
0
задан 4 June 2016 в 05:04

1 ответ

Если file содержит foo.pdf, можно разделить .pdf использование ${file%%.pdf}.

С szSavePath, можно протестировать, если это содержит .txt и добавьте его, если это не делает:

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

Можно предоставить имени файла PDF .txt вместо .pdf как имя файла по умолчанию, с помощью --filename опция:

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

Кроме того, не забудьте заключать свои переменные в кавычки, так, чтобы имена файлов с пробелами и другими специальными символами не вызывали проблемы:

pdftotext "$file" "$szSavePath"
1
ответ дан 4 June 2016 в 05:04

Другие вопросы по тегам:

Похожие вопросы: