Изменить тип файла с помощью 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
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"