我想使用正则表达式重命名文件。
例如:使用以下命令将文件Mod[0-9][0-9]
和Mod[0-9][0-9]_temp
中的模式N_Mod10_m.bdf
替换为N_Mod11_n.bdf
:
rename 's/\(.*Mod[0-9][0-9]\)\(.*\.bdf\)/$1_temp$2 *
但这不起作用。
答案 0 :(得分:0)
您需要使用非贪婪模式:(.*?)
。另外,添加缺少的引用'
。
我想,这就是你要找的东西:rename 's/(.*?Mod[0-9][0-9])(.*?\.bdf)/$1_temp$2' *
。
查看Rename Multiple Files in a Shell Prompt和Renaming files to have lower case extensions with rename。
对于CentOS,您可以将_temp
插入文件名中,如下所示:
for i in *; do j=`echo $i | sed -r 's/(.*?Mod[0-9][0-9])(.*?\.bdf)/\1_temp\2/g'`; mv "$i" "$j"; done