Linux: 如何批量重命名文件,删除文件名中、结尾处的字符

4
我有大约一千个需要重命名的文件,文件名都像这样:
XXXXppppppp-ppppp_S!!_L001XXX_001.extension
其中X是我需要保留的信息,!是一个递增的数字(即 01、02...99)。
我真的无法理解重命名命令,以及如何实现我需要做的事情。本质上,我想保留前四个字符,删除接下来的22个字符,保留接下来的3个字符并删除最后4个字符。我也希望保留扩展名。
谢谢!
1个回答

3
尝试执行以下操作:
rename -n 's/^(.{4}).{22}(.{3}).{4}(\..*)/$1$2$3/' *

请确认您使用的是perl的rename命令,有时可能会安装其他版本。好的版本有时称为prename

当测试通过后,请删除-n开关(干运行)。


1
你在替换字符串中忘记了扩展名前面的“.”(或者可以将其包含在第三个组中)。 - Didier Trosset

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接