计算文件中空行的数量

时间:2012-11-22 04:53:32

标签: unix sed grep text-files

count (non-blank) lines-of-code in bash中,他们解释了如何计算非空行的数量。

但有没有办法计算文件中的空白行数?通过空白行我也指其中有空格的行。

7 个答案:

答案 0 :(得分:52)

另一种方式是:

grep -cvP '\S' file
  • -P '\S'(perl regex)将匹配任何包含非空格的行
  • -v选择不匹配的行
  • -c打印匹配行数

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

答案 1 :(得分:21)

使用grep的一种方式:

grep -c "^$" file

或者用空格:

grep -c "^\s*$" file 

答案 2 :(得分:2)

使用Perl one-liner:

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

答案 3 :(得分:2)

您也可以使用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

答案 4 :(得分:2)

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

def s = new File("uncompressed.pdf").getText("ISO-8859-1").replaceAll("ORIGINALSTRING", "NEWSTRING") def bb = s.getBytes("ISO-8859-1") new File("uncox3.pdf").setBytes(bb)

这比史蒂夫回答的代码要快。

答案 5 :(得分:1)

要计算您的同事在项目中插入了多少 无用的空行 ,您可以启动这样的单行命令:

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

答案 6 :(得分:-1)

grep -v '\S' | wc -l

(在OSX上,Perl表达式不可用,-P选项)

相关问题