Linux,打印文件中的所有行,而不是以

时间:2013-03-09 22:19:30

标签: linux printing awk grep

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

5 个答案:

答案 0 :(得分:19)

使用-v的{​​{1}}选项取消条件:

grep

答案 1 :(得分:5)

您可以使用!运算符:

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

这否定了比赛的结果。我还包括以空格开头然后是#的行,但你可以根据自己的喜好定制正则表达式。

答案 2 :(得分:4)

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

grep -v '^#' filename

如果你是sed的粉丝:

sed '/^#/d' filename

答案 3 :(得分:3)

这也会在#

之前留下带有空格的行
awk '$1!~/^#/' file

grep -v '^[[:blank:]]*#' file

答案 4 :(得分:1)

这是grep PCRE方式,

grep -P '^(?!#)' file