我正在阅读有关重命名的信息并遇到此示例将文件扩展名从htm更改为html:
rename -v 's/\.htm$/\.html/' *.htm
它说:$
表示字符串的结尾。 \.htm$
表示它与.htm
匹配,但不匹配.html
。
我在这里使用$
感到有些困惑。由于我们已经在命令行末尾指定了*.htm
,rename
只会选择htm文件(而不是html)。那么为什么有必要使用$
呢?换句话说,没有使用$
会出现什么问题?
答案 0 :(得分:2)
Anchor $
与源文件名的末尾匹配,在你的正则表达式中仍然需要它,并且dot也应该被转义,否则abc.htm.htm
将被重命名为abc.html.htm
而不是{{} 1}}。
正确的命令是:
abc.htm.html