我对这样一个基本问题表示歉意,但我试图用awk来计算文本文件中的空行数。这不是一项家庭作业。 Windows 10. Gawk 4.1.3用awk在文件中查找空行
BEGIN { x=0 }
/^$/ { x=x+1 }
END { print "I found " x " blank lines." }
输出总是:我发现0个空行。
谢谢。
我对这样一个基本问题表示歉意,但我试图用awk来计算文本文件中的空行数。这不是一项家庭作业。 Windows 10. Gawk 4.1.3用awk在文件中查找空行
BEGIN { x=0 }
/^$/ { x=x+1 }
END { print "I found " x " blank lines." }
输出总是:我发现0个空行。
谢谢。
该命令应该可以工作,但您可以跳过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"
除了你已经得到了很好的解决方案的awk,sed的解决办法是
sed -n '/^$/p' file |wc -l
这里-n
禁止显示正常输出,p
打印行空白的行 - (^$
)。 wc -l
计算如此打印的总行数。
您的解决方案适用于我。你还认为仅有空白的行是空白的吗? – eush77
gawk'NF == 0 {x ++} END {print“我找到了”x“空白行。” }'文件 – Chet
因为它按照eush77工作,所以它可能只是一个行结束符问题。也许尝试先通过'dos2unix'管道。 – matz