Linux:如何批量重命名文件,修剪中间的字符,以及文件名的结尾

我有大约一千个文件需要重命名。 文件名都是这样的

XXXXppppppp-ppppp_S !! _ L001XXX_001.extension

X是我需要保持的信息! 是一个依次递增的数字(即01,02 … 99)。

我实在无法理解重命名的命令,以及如何去实现我需要做的事情。 本质上我想保留前四个字符,删除下22个,保留下3个并删除最后4.我也想保留这个扩展名。

谢谢!

尝试这样做:

rename -n 's/^(.{4}).{22}(.{3}).{4}(\..*)/$1$2$3/' * 

验证你的rename命令是perl的,有时还有另一个安装。 好的有时被称为prename

当测试正常时,取出-n开关(干运行)。