求~SSh下批量调整文件名前缀与后缀的大小写的方法
假设我需要把某个目录下,
ABC-n.JPG 文件批量替换成 ABC-n.jpg (文件后缀变小写)
或者
abc-n.jpg 替换成 ABC-n.jpg(文件前缀变大写)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
假设我需要把某个目录下,
ABC-n.JPG 文件批量替换成 ABC-n.jpg (文件后缀变小写)
或者
abc-n.jpg 替换成 ABC-n.jpg(文件前缀变大写)
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
#!/bin/bash
echo "rename [a-z]-n.jpg to [A-Z]-N.JPG"
for file in *.jpg *.JPG
do
echo $file | tr '[a-z]' '[A-Z]' > tmp_$$
mv $file $(cat tmp_$$) 2> /dev/null
done
echo "rename *.JPG to *.jpg"
ls | sed 's/-N.JPG//p' -n | awk '{printf("mv "%s-N.JPG" "%s-n.jpg"n",$0,$0)}' | /bin/sh
rm tmp_*
exit 0
另外不用mv,红薯rename的方法也可行,但在debian-based的系统中,rename用法稍有不同,所以提示上述错误。标准格式是:
rename 's/foo/foox/g' *
rename转换大小写: rename 'y/A-Z/a-z/' *
#!/bin/bash
echo "rename [a-z]-n.jpg to [A-Z]-N.JPG"
for file in *.jpg *.JPG
do
echo $file | tr '[a-z]' '[A-Z]' > tmp_$$
mv $file $(cat tmp_$$) 2> /dev/null
done
echo "rename *.JPG to *.jpg"
ls | sed 's/-N.JPG//p' -n | awk '{printf("mv "%s-N.JPG" "%s-n.jpg"n",$0,$0)}' | /bin/sh
rm tmp_*
exit 0
另外不用mv,红薯rename的方法也可行,但在debian-based的系统中,rename用法稍有不同,所以提示上述错误。标准格式是:
rename 's/foo/foox/g' *
rename转换大小写: rename 'y/A-Z/a-z/' *
红薯威武` 修改前缀好像用bash可以实现