这手册页给出两个例子:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
所以要么是 s,要么是 y,然后/replaceThis/withThis
前面的 s 和 y 是什么意思?还有其他选择吗?
答案1
在第一种情况下:
rename 's/\.bak$//' *.bak
您正在对文件名运行正则表达式,并用第二个表达式(为空)替换表达式的匹配部分(文件名末尾的 .bak)。
第二种情况:
rename 'y/A-Z/a-z/' *
您正在与正则表达式模式空间进行匹配,并音译到目标。换句话说,范围 AZ 被更改为范围 az,使文件名变为小写。
我建议你看一下手册页sed了解更多命令和详细信息。我相信“s”命令最常用。此外,正则表达式(第 7 节)perl 文档也可能有帮助。特别是,这里有一个教程关于 perl 和正则表达式。
从man sed
:
s/正则表达式/替换/ 尝试将正则表达式与模式空间进行匹配。如果成功 ful,用替换替换匹配的部分。 替换可能包含特殊字符 & 来指代该 模式空间中匹配的部分,以及特殊的 转义 \1 到 \9 以引用相应的匹配 正则表达式中的子表达式。 y/源/目标/ 音译模式空间中出现的字符 源中对应于目标中的字符。