1

我想用 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 做到这一点?

4

2 回答 2

6

使用替换扩展

您实际上并不需要正则表达式,尽管您可以将其与非标准rename命令一起使用,或者通过使用 sed、awk 或 perl 解析文件名来使用。但是,您也可以只使用 Bash 的内置参数扩展来轻松处理此问题。例如:

for file in *_szemle_*
do
    mv "$file" "${file/_szemle/_Szemle}"
done
于 2013-03-02T14:57:43.780 回答
6

rename在 GNU/Linux 下有一个可用的实用程序(如 Ubuntu、Debian、RedHat ......而标准perl安装正常),这很容易。

您可以在包含所有提到的文件的文件夹中运行它,例如:

rename 's/^Kassai_s/Kassai_S/' Kassai_s*.jpg
于 2013-03-02T14:59:43.027 回答