计算文件中的空行数(Count number of blank lines in a file)

2019-08-03 02:39发布

在数(非空)行-的代码在bash他们解释如何计算的非空行的数目。

但有一种方法来计算的文件中的空白行数? 通过空行我也意味着有空格的线条。

Answer 1:

另一种方法是:

grep -cvP '\S' file
  • -P '\S' (perl的正则表达式)将匹配任何线包含非空间
  • -v选择非匹配线
  • -c打印匹配行的计数

如果你的grep不支持-P选项,请使用-E '[^[:space:]]'



Answer 2:

使用一种方法grep

grep -c "^$" file

或空白:

grep -c "^\s*$" file 


Answer 3:

您还可以使用awk此:

awk '!NF {sum += 1} END {print sum}' file

从手动,“变量NF设定为在输入记录字段的总数”。 由于默认字段分隔符是空间,包括在存在或是一些空格任何线将具有NF=0

然后,它是计算有多少次出现这种情况的问题。

测试

$ cat a
aa dd

ddd


he      llo
$ cat -vet a # -vet to show tabs and spaces
aa dd$
    $
ddd$
   $
^I$
he^Illo$

现在,让我们计数的空白行数:

$ awk '!NF {s+=1} END {print s}' a
3


Answer 4:

grep -cx '\s*' file

要么

grep -cx '[[:space:]]*' file

这比在史蒂夫的答案代码快。



Answer 5:

使用Perl的一行:

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


Answer 6:

要统计有多少你的同事插入一个项目无用的空行 ,你可以这样启动单行命令:

blankLinesTotal=0; for file in $( find . -name "*.cpp" ); do blankLines=$(grep -cvE '\S' ${file}); blankLinesTotal=$[${blankLines} + ${blankLinesTotal}]; echo $file" has" ${blankLines} " empty lines."  ; done; echo "Total: "${blankLinesTotal}

这将打印:

<filename0>.cpp #blankLines
....
....
<filenameN>.cpp #blankLines
Total #blankLinesTotal


Answer 7:

grep -v '\S' | wc -l

(在OSX Perl的表达不到位,-P选项)



文章来源: Count number of blank lines in a file