获取文件夹中文件的基本名称



我想压缩图像文件,并编写了以下bash脚本:

for i in *.png; do convert $i -quality 100% $i-comp.jpeg; done;

当我运行它时,我会得到像48.png-comp.jpeg这样的文件名。我只想有类似的48-comp.jpeg,所以基本上删除了文件名的.png部分。

我尝试使用这个${$i/.png/},它给了我一条错误消息。

有什么建议吗?

${$i/.png/}几乎是正确的,但在参数扩展中不需要第二个$

#!/bin/bash
for i in *.png; do
convert "$i" -quality 88% "${i/.png/}-comp.jpeg"
done

注意:${i%.png}通常比${i/.png/}更用于删除文件扩展名,但两者应该产生相同的输出。

您可以使用参数扩展来去除输出文件名的png扩展名:

for i in *.png; do convert $i -quality 100% ${i%.png}-comp.jpeg; done

相关内容

  • 没有找到相关文章

最新更新