linux - 如何从 Linux 命令行上的变量中提取不带扩展名的文件名(并添加计数器)?

标签 linux unix command-line

我想在 Linux (Mint 17) 命令行上对文件夹中的一些图像进行批量转换和调整大小,所以我正在使用:

for $file in *.jpg; do convert -resize 25% $file $file.png; done

但这给我留下了一堆文件,例如:

image1.jpg.png
photo4.jpg.png
picture7.jpg.png
...

有没有一种方法可以轻松地从文件名中剪掉文件扩展名,使其只有 .png 而不是前面的 .jpg

或者,更好的是,我可以包括一个计数器,以便我可以用这样的东西运行命令:

for $file in *.jpg using $count; do convert -resize 25% $file image$count.png; done

所以我最终会得到类似的东西:

image1.png
image2.png
image3.png
image4.png
...

我宁愿不必担心创建批处理脚本,所以如果这太难了并且有一种简单的方法可以删除 .jpg 内联,那么我很高兴那个..

谢谢!

编辑:
我认为这个问题本身就可以作为一个问题,因为它也有一个相反的元素。

最佳答案

 for file in *.jpg; do convert -resize 25% $file ${file%.*}.png; done 

关于linux - 如何从 Linux 命令行上的变量中提取不带扩展名的文件名(并添加计数器)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40252751/

相关文章:

linux - 在 Linux 上,您如何确定驻留了哪些单独的页面?

linux - 如何在动态解码 base64 编码的 shell 脚本并执行时传递参数

unix - 管道命令的输出,但前提是输出非空

file - 使新文件自动执行?

windows - 嵌套文件 : path and extension filter

windows - 启动应用程序后将控制权返回给 cmd.exe

linux - 如何从 Linux 命令行彻底关闭 Eclipse?

linux - 大学项目(bash shell)

c - 如何用 C 处理 Linux 控制台中按下的按键?

linux - shell 提示 'cannot execute binary file'