2013-03-09 53 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