我正在尝试对数百个 awstats 配置文件执行字符串替换,并使用 sed 来执行此操作。但是,我无法获得工作模式。
具体来说,我正在尝试在配置中转换这一行:
HostAliases="REGEX[^\.*example\.com$]"
进入这个:
HostAliases="REGEX[\.example\.com$]"
哪里example\.com
是变体。
我已经尝试了几十种 sed 命令的变体。例如:
sed -i 's/^HostAliases="REGEX[^\.*/HostAliases="REGEX[\./' /etc/awstats/*.conf
sed -i 's/REGEX[^\.*/REGEX[\./' /etc/awstats/*.conf
但每次都会出现如下错误:sed: -e expression #1, char 49: unterminated 's' command
问题可能与转义某些字符有关,但我无法弄清楚哪些字符或如何转义它们。我想让模式足够具体,以避免意外匹配配置中的其他行,因此包括 HostAliases 会很好。
可以请一些 sed 大师指出我正确的方向吗?