嘿伙计们我尝试自动化构建和部署,并意识到我无法在
下正确插入ServerName
# Global configuration
#
由于一些愚蠢的原因,awk并不解释我的\n
如果我删除\n#
它工作正常,但我希望它在全局评论下而不是在它的中间,什么我在这里做错了吗?
希望看到
# Global configuration
#
ServerName localhost
这是表达式
awk '/# Global configuration\n#/ { print; print "\nServerName localhost"; next }1' apache2.conf
也许更好的想法就是使用SED?
答案 0 :(得分:3)
试试这个:
awk 'p&&!NF{print "ServerName localhost";p=0}/# Global configuration/{p=1}1' apache2.conf
答案 1 :(得分:2)
awk用于逐行处理。您只能匹配单行中包含的模式。
您尝试做的事情可以通过以下方式完成:
awk '/# Global configuration/{c=1;print;next} c&&/^#/ {print; print "\nServerName localhost"; c=0; next} 1' file
# Global configuration
#
ServerName localhost