通过AWK向Apache.conf添加ServerName

4
我正在尝试自动化构建和部署,但发现我无法正确地插入ServerName
# Global configuration
#

由于某些愚蠢的原因,awk没有解释我的\n。如果我删除\n#,它可以正常工作,但我希望它在全局注释中而不是在其中间。我在这里做错了什么?

希望能得到回复。

# Global configuration
#

ServerName localhost

这是表达式。
awk '/# Global configuration\n#/ { print; print "\nServerName localhost"; next }1' apache2.conf

也许更好的想法是只使用SED?
2个回答

3
尝试这个:
awk 'p&&!NF{print "ServerName localhost";p=0}/# Global configuration/{p=1}1' apache2.conf

2

awk用于逐行处理。您只能匹配单行中包含的模式。

您正在尝试做的可以使用以下方法完成:

awk '/# Global configuration/{c=1;print;next} c&&/^#/ {print; print "\nServerName localhost"; c=0; next} 1' file

# Global configuration
#

ServerName localhost

1
感谢你的辛勤工作!+1 并且完美运行,肯定会被接受。您是个牛人! - ehime

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接