如何计算文本文件中有多少行。例如:
command file.txt
注意,我只想计算非空行(不计算空格和制表符的行)?
答案1
尝试sed
:
sed '/^$/d' file.txt | wc -l
如果您有任何仅包含空格或制表符的行,并且您也想忽略它们:
sed '/^[[:blank:]]*$/d' file.txt | wc -l
答案2
上述答案是正确的,但略有不同,您可以使用grep
更简单的代码,例如grep -vc '^$' file.txt
例如(A):file.txt
$grep -vc '^$' file.txt
1 First line #This is two tabs to comment.
2
4
3 Fourth line #Another two tabs to comment.
$2
例如(B):file.txt
$sed '/^$/d' file.txt | wc -l
1 First line #This is two tabs to comment.
2
4
3 Fourth line #Another two tabs to comment.
$4
注意结果是 4!当我们只期望两个时。但这也计算了内容和评论之间的标签。
请注意从 0 开始的计数和从 1 开始的计数与 grep 和 sed 不同,我记得更多详细信息请搜索 grep 或 sed。
答案3
使用grep
:
grep -vc '^$' file # or
grep -vc '^\s*$' file
答案4
和awk:
awk 'NF{++count} END{print count}' file
解释:
表示NF
字段总数,因此会打印仅限非空行,因为在非空白行中NF
大于0
并计算为真。因此增加数数当 awk 发现非空行时进行标记,并且打印最新价值数数在末尾加上标志END{print count}
。