我有数百个具有不同名称的文件,我想将其翻译成另一种语言。
是否有应用程序/ CLI操作允许我复制列表/表中的所有这些名称,然后在翻译它们之后将其粘贴回列表/表中,或者允许执行类似于“重命名”在Thunar中进行,但操作更接近我所描述的内容?
(我在Lubuntu,由于不希望对LXDE / pcmanfm桌面和LXPanel造成干扰,所以我不建议使用Nautilus。如果Nautilus中有解决方案,请提供它,但如果可能的话,请尝试使用其他方法。
下面的脚本受到了此处不同讨论的启发,使用translate-bin
,是此相关问题中的精选程序,并一次性翻译和重命名了文件。它适合一次性批量翻译和重命名数百个文件。首先使用以下命令从存储库中安装必要的程序:
sudo apt-get install libtranslate0 libtranslate-bin
该脚本当前设置为重命名带有扩展名的任何文件.txt
,但它将与您可能需要的任何文件一起使用:只需将.txt
to的所有实例更改为.jpg
,.mp4
或将其转换为所需的任何文件即可。
目前已将该脚本设置为将文件名从德语(de)转换为法语(fr),但是您可以选择-s
所使用的服务()支持的任何语言;例如,由于该翻译服务目前是Google,因此提供了多种语言。
打开文本编辑器,保存文件,然后使用使其可执行chmod u+x myscript
。
#!/bin/bash
for i in *.txt
do
mv -i "$i" "$(echo ${i%.txt} | translate-bin -s google -f de -t fr).txt";
done
您可以将脚本放置在带有目标文件的文件夹中,然后执行它,或者将其放置在您的~/bin
文件夹中,然后使用terminalcd
转到包含文件的文件夹,并使用您指定的名称调用脚本。有关bin文件夹的更多信息,请在此处查看我的答案。
这是打开终端并cd
转到目标文件夹的示例:
在脚本运行之前,ls
用德语返回dog and cat:
Hund.txt Katze.txt
并且在终端中使用执行了脚本之后,法语./scriptname
的输出ls
为dog and cat:
Chien.txt Chat.txt
最好在使用脚本之前先备份文件,但是如果sgghdsgsh.txt
找到无效的翻译目标(例如),则无论设置哪种语言,脚本都不会执行任何操作。但是,为防止它覆盖文件,我们可以添加-i
到mv
:如果单击并运行并且目标文件存在,则不会发生任何事情,但是如果脚本在带有的终端中运行./script
,则将要求您确认:
mv: `Cat.txt' and `Cat.txt' are the same file
mv: overwrite `Cat.txt'? n
我认为没有必要在脚本中进行任何其他检查,因此应该令人满意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句