【发布时间】:2015-06-08 09:11:09
【问题描述】:
我想使用正则表达式重命名文件。
例如:使用以下命令将文件N_Mod10_m.bdf 和N_Mod11_n.bdf 中的模式Mod[0-9][0-9] 替换为Mod[0-9][0-9]_temp:
rename 's/\(.*Mod[0-9][0-9]\)\(.*\.bdf\)/$1_temp$2 *
但这不起作用。
【问题讨论】:
-
您在
rename命令中缺少结束'。 -
另外,如果你在做
$1_temp,bash 会寻找变量1_temp。说,$1+_temp,说${1}_temp。 -
你需要使用非贪婪模式:
(.*?),我猜,这就是你要找的:rename 's/(.*?Mod[0-9][0-9])(.*?\.bdf)/$1_temp$2' *。看看cyberciti.biz/tips/… 和unix.stackexchange.com/questions/19807/…。