12

我想打印文件的内容,但我想忽略所有以 # 开头的行。我正在用 grep 和 awk 尝试一些东西,但它一直在打印整个文件,或者只是打印以 # 开头的行。我你可以用正确的方式给我一个推送,或者一个 grep/awk 命令,它会打印文件中不以 # 开头的任何行。

4

5 回答 5

25

使用-v选项grep来否定条件:

grep -v '^#' file
于 2013-03-09T22:22:05.093 回答
6

您可以使用!运算符:

awk '!/^ *#/ { print; }'

这否定了匹配的结果。我还包括了以空格和 # 开头的行,但您可以根据自己的喜好定制正则表达式。

于 2013-03-09T22:21:57.563 回答
4

#您可以使用 grep 排除所有以使用该-v选项开头的行

grep -v '^#' filename

如果你喜欢sed

sed '/^#/d' filename
于 2013-03-09T22:24:00.690 回答
3

这也会在 : 之前省略带有空格的行#

awk '$1!~/^#/' file

或者

grep -v '^[[:blank:]]*#' file
于 2013-03-09T22:48:15.380 回答
1

这是 grep PCRE 方式,

grep -P '^(?!#)' file
于 2017-08-28T11:02:50.683 回答