grep行不以#或空行开头

时间:2016-05-06 15:39:08

标签: regex unix grep regex-negation

当我使用grep(GNU grep)2.22打印#开始或为空时,我需要做

$ grep -v '^#' fileNameIGrepFor | grep -v '^$'

我认为这很丑陋,有更聪明的方法(请使用grep

1 个答案:

答案 0 :(得分:3)

grep -v '^#' fileNameIGrepFor | grep -v '^$'

可以简化为:

grep -v '^#\|^$' fileNameIGrepFor

要删除丑陋的\,您可以使用grep -E,或等效地egrep

egrep -v '^#|^$' fileNameIGrepFor

然后,您可以通过对术语进行分组来澄清这一点:

egrep -v '^(#|$)' fileNameIGrepFor

然后通过在#之前检查空格来使其更加健壮:

egrep -v '^(\s*#|$)' fileNameIGrepFor

也许你还想排除所有空行(只包含空格)?在这种情况下,再次变化很简单:

egrep -v '^\s*(#|$)' fileNameIGrepFor