Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用sed计算文件中的非空行数?_Bash_Shell_Sed - Fatal编程技术网

Bash 如何使用sed计算文件中的非空行数?

Bash 如何使用sed计算文件中的非空行数?,bash,shell,sed,Bash,Shell,Sed,如何通过sed查找文件中的行数 (需要忽略空格和空行) 比如说 如果我有139行的文件(行只能包含一个字符) 那么sed应该返回139 莉迪亚你可以试试: sed -n '/[^[:space:]]/p' filename | wc -l 这里sed只打印那些至少有一个非空格字符的行,并且wc统计这些行。使用nawk代替sed nawk 'NF{c++}END{print "total: "c}' file 这是为grep而不是sed的作业: <myfile grep -c '[^[:

如何通过sed查找文件中的行数 (需要忽略空格和空行)

比如说

如果我有139行的文件(行只能包含一个字符) 那么sed应该返回139

莉迪亚

你可以试试:

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

这里
sed
只打印那些至少有一个非空格字符的行,并且
wc
统计这些行。

使用nawk代替sed

nawk 'NF{c++}END{print "total: "c}' file

这是为
grep
而不是
sed
的作业:

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

在这里,
sed
在从开始到结束删除所有包含0或更多空格的行后打印这些行
wc-l
用于计算这些行的数量。

使用Perl一行程序:

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

说要做:
sed-n'$='
@Seth:那只是
wc-l
,它不会像OP所希望的那样忽略空行。@codaddict-我自己会
wc-l
;我不是一个被解雇的人。
perl -lne '$count++ if /\S/; END { print int $count }' input.file