使用 zenity 更改文件类型

使用 zenity 更改文件类型

我对任何类型的脚本编写都毫无经验,如果这个问题太简单而不适合在这里回答,我深感抱歉。

我发现了 zenity,我认为它非常有用,因为我的记忆力很差,所以如果它不在菜单中(例如命令行应用程序),那么我就会忘记我有它们,或者只是忘记如何使用它们。

所以无论如何。

pdftotext 是我现在拥有的一个应用程序,我可以想象到将来我会经常使用它。因此,我使用一个 shell 脚本调用 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"

相关内容