我为这样一个基本问题道歉,但我试图用awk计算文本文件中的空白行数。这不是家庭作业。 Windows 10. Gawk 4.1.3
BEGIN { x=0 }
/^$/ { x=x+1 }
END { print "I found " x " blank lines." }
输出始终是:我找到了0个空行。
感谢。
答案 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
计算这样打印的总行数。