2013-03-09 79 views
8

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

+4

'的grep -v “^#” file.txt' – 2013-03-09 22:23:34

+0

http://unix.stackexchange.com/questions/60994/how-to-grep-lines-which-does-not-begin-with-or – 2015-07-27 07:32:19

回答

16

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

grep -v '^#' file 
+1

谢谢各有不同! – Dasoren 2013-03-09 22:27:27

5

可以使用!操作:

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

这否定了比赛的结果。我还包含了以空格和#开头的行,但是您可以根据您的喜好调整正则表达式。

4

你可以使用grep使用-v选项

grep -v '^#' filename 

如果你是一个排除开头的行与#sed的粉丝:

sed '/^#/d' filename 
+0

两个很好的例子。但是,在sed示例中,您不需要'。*'部分。 – cmevoli 2013-03-09 22:39:56

+0

@cmevoli - 是采取的一点,因为在该行的开头#的存在足以用于删除命令:) – Tuxdude 2013-03-09 22:47:24

0

这也离开了与空白行#前:

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

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

这里是grep的PCRE方式,

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