我想用bash脚本重命名很多文件:
原版的:
Kassai_szemle_1885_00015.jpg
Kassai_szemle_1885_00016.jpg
Kassai_szemle_1885_00017.jpg
Run Code Online (Sandbox Code Playgroud)
它应该重命名为:
Kassai_Szemle_1885_00015.jpg
Kassai_Szemle_1885_00016.jpg
Kassai_Szemle_1885_00017.jpg
Run Code Online (Sandbox Code Playgroud)
只应将"s"重命名为大写"S".
我怎么能用bash做到这一点?
你并不真的需要一个正则表达式在这里,虽然你可以使用一个与非标准rename命令或通过使用sed,awk的或Perl解析文件名.但是,您也可以使用Bash的内置参数扩展来轻松处理.例如:
for file in *_szemle_*
do
mv "$file" "${file/_szemle/_Szemle}"
done
Run Code Online (Sandbox Code Playgroud)
rename在GNU/Linux下有一个实用程序(像Ubuntu,Debian,RedHat ......虽然标准perl是正常安装的),这使得它很容易.
您可以在包含所有提到的文件的文件夹中运行它,例如:
rename 's/^Kassai_s/Kassai_S/' Kassai_s*.jpg
Run Code Online (Sandbox Code Playgroud)