在数(非空)行-的代码在bash他们解释如何计算的非空行的数目。
但有一种方法来计算的文件中的空白行数? 通过空行我也意味着有空格的线条。
在数(非空)行-的代码在bash他们解释如何计算的非空行的数目。
但有一种方法来计算的文件中的空白行数? 通过空行我也意味着有空格的线条。
另一种方法是:
grep -cvP '\S' file
-P '\S'
(perl的正则表达式)将匹配任何线包含非空间 -v
选择非匹配线 -c
打印匹配行的计数 如果你的grep不支持-P
选项,请使用-E '[^[:space:]]'
使用一种方法grep
:
grep -c "^$" file
或空白:
grep -c "^\s*$" file
您还可以使用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
grep -cx '\s*' file
要么
grep -cx '[[:space:]]*' file
这比在史蒂夫的答案代码快。
使用Perl的一行:
perl -lne '$count++ if /^\s*$/; END { print int $count }' input.file
要统计有多少你的同事插入一个项目无用的空行 ,你可以这样启动单行命令:
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
grep -v '\S' | wc -l
(在OSX Perl的表达不到位,-P选项)