2010-09-03 99 views
5

如何找到我多少行有文件通過SED (需要忽略空格和空行),例如如何使用sed計算文件中非空行的數量?

如果我有139行文件(行只能包含一個字符) 然後SED應返回139

利迪婭

+0

[此頁](http://www.unixguide.net/unix/sedoneliner.shtml)說,這樣做:'sed的-n '$ ='' – Seth 2010-09-03 06:52:08

+0

@Seth:這就是'wc -l',它不會忽略OP所需的空行。 – codaddict 2010-09-03 06:56:44

+0

下次顯示您的代碼! – ghostdog74 2010-09-03 06:59:13

回答

11

這是grep工作,不sed

<myfile grep -c '[^[:space:]]' 
3

你可以試試:

sed -n '/[^[:space:]]/p' filename | wc -l 

這裏sed僅打印那些至少包含一個非空格字符的行,並且wc將對這些行進行計數。

1

使用nawk代替sed。

nawk 'NF{c++}END{print "total: "c}' file 
0
sed '/^ *$/ d' filename | wc -l 

這裏,sed打印刪除所有行從0開始或多個空格結束後的行。 wc -l是計算這些行的數量。

0

使用Perl的一行:

perl -lne '$count++ if /\S/; END { print int $count }' input.file