我正在编写一个 bash 脚本来重命名图标。具体来说,我正在尝试将 HTML 文件中的“icon-close-m”更改为“icon-close icon-size-medium”。 (尽管它可以包含除“close”之外的任何子字符串,如[a-z]
下面行中所述)
当我从命令行运行此命令时它起作用:
sed -i -e "s/\(icon-[a-z]*\)-m[^e]/\1 icon-size-medium/g" ./app/index.html
结果:
icon-close icon-size-medium
但是,当我从脚本运行它时,它会将其更改为:
icon-close icon-sizeedium
以下是应更改的文本示例:
<span class="icon-close-m"></span>
应该变成:
<span class="icon-close icon-size-medium"></span>
它似乎正在经历并取代-m
在新的替换中,在初始替换之后。仅当该命令在 bash 脚本中实现时才会执行此操作。我以前没有见过这种情况发生,也没有在 SE/SO 上看到任何类似的问题。请注意,此命令不在任何类型的循环内。