我想用bash脚本重命名很多文件:
原件:
Kassai_szemle_1885_00015.jpg
Kassai_szemle_1885_00016.jpg
Kassai_szemle_1885_00017.jpg
它应该重命名为:
Kassai_Szemle_1885_00015.jpg
Kassai_Szemle_1885_00016.jpg
Kassai_Szemle_1885_00017.jpg
只应将“s”重命名为大写“S”。
我怎么能用bash做到这一点?
答案 0 :(得分:6)
你真的不需要这里的正则表达式,尽管你可以使用非标准rename
命令或使用sed,awk或perl解析文件名。但是,您也可以使用Bash的内置parameter expansion轻松处理此问题。例如:
for file in *_szemle_*
do
mv "$file" "${file/_szemle/_Szemle}"
done
答案 1 :(得分:6)
在GNU / Linux下有一个rename
实用程序(如Ubuntu,Debian,RedHat ......标准perl
正常安装),这很容易。
您可以在包含所有这些文件的文件夹中运行它,例如:
rename 's/^Kassai_s/Kassai_S/' Kassai_s*.jpg