在Linux上的一些文件夹中,我有文件* .eps,我想将它们转换成* .png并保留名称,例如:ball.eps to ball.png。 我试图做到:
convert *.eps *.png
但结果并不令人满意。 要做到这一点,我需要写一些简单的脚本,也许在Python或bash,所以我怎么能从文件夹,例如在Python中的文件名? 谢谢。
用通配符运算符命令行`qdel`命令
将文本附加到与Sed现有的第一行
在bash脚本中解决sys.excepthook错误
检查在bash脚本中至less有两个参数
这个基于RANDOM的命令在bash中是什么意思?
尝试以下脚本:
#!/bin/bash for file in *.eps do filename=$(basename "$file") filename=${filename%.*} convert $file $filename.png done
希望它能为你工作。
for file in *.eps中的文件给出了扩展名为.eps的所有文件的列表
filename=$(basename "$file")给出filename=$(basename "$file")的原始名称
filename=${filename%.*}删除扩展名.eps
convert $file $filename.png转换成.png扩展名
编辑 :如果你想要的文件名是相同的,我甚至不认为你需要一个循环。 你可以做:
mkdir backup_directory && cp *.eps backup_directory mogrify -format png *.eps
mogrify就像是convert但它在原地修改文件,所以如果你不想丢失原始文件,你需要在其他地方备份它们。
使用循环,你可以在bash中做到这一点:
for f in *.eps; do b=$(basename "$f" .eps); convert "$f" "$b".png; done
在您尝试的通配符*将扩展到您使用它的所有文件的列表,这不是你想要的。 通过使用循环变量"$f"而不是一次只处理一个文件。
你也可以避免调用basename并使用:
for f in *.eps; do convert "$f" ${f%eps}png; done
这从文件名的末尾切断了eps ,并将png添加到它。