我试图在数百个awstats配置文件上执行字符串替换,并使用sed来执行此操作。但是,我无法获得工作模式。无法找到工作的sed模式
具体而言,我想这条线转换在configs:
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大师请指点我正确的方向吗?
谢谢,你的回答让我想到正确的方式,所以我可以解决我自己的问题。我需要的实际sed命令是'sed -i's/^ HostAliases =“REGEX \ [^ \\\。\ */HostAliases =”REGEX [\\ ./'/ etc/awstats/*。conf'。我正在授予最佳解释的观点。 – 2011-04-13 20:32:35