0

我正在阅读有关重命名的内容,并遇到了将文件扩展名从 htm 更改为 html 的示例:

rename -v 's/\.htm$/\.html/' *.htm

它说: The$表示字符串的结尾。\.htm$意味着它将匹配.htm但不匹配.html

$我对这里的使用感到有些困惑。由于我们已经*.htm在命令行末尾指定,rename因此只会选择 htm 文件(而不是 html)。那么为什么需要使用$蒸馏器呢?换句话说,不使用有什么问题$

4

1 回答 1

2

Anchor$匹配源文件名的结尾,并且在您的正则表达式中仍然需要它,并且 dot 也应该被转义,否则abc.htm.htm将被重命名为abc.html.htm而不是abc.htm.html.

正确的命令是:

rename -v 's/\.htm$/.html/' *.htm
于 2015-03-27T21:25:44.510 回答