我想打印出包含一系列注释的文件,例如:
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
# SSL Engine Switch:
本质上,文件包含多个缩进级别,其中注释以
#
符号开头。grep应该删除空白行,并删除文本前有哈希符号的行(这意味着它们是注释)。
我知道可以通过以下方式删除空白行:
grep -v '^$'
但是,如何删除带有前导空格的行,然后删除
#
符号,并仅打印出具有实际代码的行?我想使用grep和/或sed在bash中执行此操作。
最佳答案
用grep
:
grep -v '^\s*$\|^\s*\#' temp
在OSX / BSD系统上:
grep -Ev '^\s*$|^\s*\#' temp
关于regex - 如何使用grep/sed打印文件,不包括注释和空白行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17392869/