grep 行不以 # 或空行开头

sta*_*ant 1 regex unix grep regex-negation

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

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

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

Tom*_*ord 5

grep -v '^#' fileNameIGrepFor | grep -v '^$'
Run Code Online (Sandbox Code Playgroud)

可以简化为:

grep -v '^#\|^$' fileNameIGrepFor
Run Code Online (Sandbox Code Playgroud)

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

egrep -v '^#|^$' fileNameIGrepFor
Run Code Online (Sandbox Code Playgroud)

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

egrep -v '^(#|$)' fileNameIGrepFor
Run Code Online (Sandbox Code Playgroud)

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

egrep -v '^(\s*#|$)' fileNameIGrepFor
Run Code Online (Sandbox Code Playgroud)

也许您还想排除所有空行(仅包含空格)?在这种情况下,更改也很简单:

egrep -v '^\s*(#|$)' fileNameIGrepFor
Run Code Online (Sandbox Code Playgroud)

  • 或者,您可以检查 **do** 以非哈希开头的行: `grep '^[^#]'` (2认同)