如何使用维护名称将eps文件转换为PNG文件?

在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添加到它。

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...