使用awk查找文件中的空白行

时间:2016-07-16 07:04:14

标签: awk gawk

我为这样一个基本问题道歉,但我试图用awk计算文本文件中的空白行数。这不是家庭作业。 Windows 10. Gawk 4.1.3

BEGIN { x=0 } 
/^$/  { x=x+1 } 
END   { print "I found " x " blank lines." }

输出始终是:我找到了0个空行。

感谢。

2 个答案:

答案 0 :(得分:4)

该命令应该有效,但您可以跳过x的初始化。 awk会自动为您完成。您可以使用NF变量进行该检查,如果0计算结果为false该行为空。此外,我建议使用printf

!NF  {x++}
END  {printf "I found %d blank lines\n", x}

顺便说一下,你可以简单地使用grep

grep -ch '^$' file

-c仅输出找到的事件数,-h会抑制文件名的输出。

使用命令替换将输出内插到echo语句中:

echo "I found $(grep -ch '^$' file) blank lines"

答案 1 :(得分:1)

除了你已经获得的优秀awk解决方案之外,sed解决方案将是

sed -n '/^$/p' file |wc -l

此处-n会抑制正常输出,p会打印该行为空白的行 - (^$)。 wc -l计算这样打印的总行数。