当configuration桑巴,我使用这个官方文档build议的方法。
testparm -s smb.conf.master> smb.conf
这意味着我可以保留完整的注释版本(smb.conf.master),但是我也可以通过smb.conf中的人和机器版本轻松parsing
有一个相当于Apache的configuration文件的方法?
我经常这样做:
grep -v'^#'apache.conf> apache-stripped.conf
如果你想变得非常积极,并删除空行:
egrep -v'^(#| $)'apache.conf> apache-stripped.conf
我应该指出,做这件事的唯一理由是让你更容易阅读,如果你发现注意力分散注意力。 Apache当然不介意。 除了在启动时保存几微秒之外,从活动的Apacheconfiguration中删除注释并没有获得任何性能。
您可以使用apachectl configtest (通常在debian系统上称为apache2ctl)来testingconfiguration文件。 这是我能想到的最接近的等价物。
编写一个将configtest与其他东西(grep,awk,sed等)结合起来的脚本来复制你正在用testparm做的事情并不会太麻烦。
就个人而言,我会find一个没有评论的httpd.conf,比一个有一些评论的人更难阅读,有没有什么具体的原因,你试图做到这一点?
这是对Insyte的回答的真正评论,但我不能格式化它作为一个评论。 加上这是太长的评论:)
sed -e's / ^ [[:space:]] \ + \(#\ | \ $ \)/#/'apache.conf | grep -v'^#'| uniq的
像这样使用sed将在全行注释之前和所有行尾标记之前删除空格。 通过uniq的pipe道将除去任何连续空行序列中的第一个空行(即在“段落”之间留下一个空行)。 海事组织,这使得它更可读。
在这里使用uniq确实有其他连续重复行会被删除的小风险,但这在实践中可能不是问题。
另外,要回答你关于剥离单注#的问题,但不是双##注释…首先,我会提到,双和三#注释在configuration文件中很常见,所以你可能想用别的东西。 '#:', 例如。 然后使用类似于:
sed -e's / ^ [[:space:]] \ + \(#\ | \ $ \)/#/'apache.conf | egrep -v'^#[^:] |#$'| uniq的