Grep 奇怪地从输出中排除空行

Grep 奇怪地从输出中排除空行

在解决评论过滤的常见任务时,例如我可以这样做:

grep -v ^# /etc/apache2/apache2.conf

这样我就没有评论和空行。这是预料之中的。

我认为另一种方法是:

grep ^[^#] /etc/apache2/apache2.conf

但是我得到了相同的输出,但没有空行。是什么原因?

答案1

第二种是查找至少包含一个字符的行,因此不匹配没有字符的空行。如果两者都想要,请尝试以下操作:

grep -e ^[^#] -e ^$ /etc/apache2/apache2.conf

答案2

grep -v ^#
  • 排除不以以下字符开头的行#
  • 空行不以 开头#,所以不是前任包括在内

维拉斯

grep ^[^#]
  • 包括以任何字符开头的行,除了#
  • 空行不以任何性格,所以不是包括在内

相关内容