我有以下代码,可以输出文件中的行数和单词数。我如何再使用一个可用于计算总字符数的 FS(文件分隔符)。??(输出应与 相同wc file command
)
BEGIN {
FS="\n| ";
}
{
for(i=1;i<=NF;i++)
w++
l++
}
END {
print "Total no of Lines:"l;
print "Total no of words:"w;
}
请注意,使用该字段分隔符,脚本将计算太多“单词”,因为此处将字段视为单词,并且每个空格都成为字段分隔符。
此外,awk
只能为正确的文本文件提供正确的结果,其中观察到最大行长度等限制,最后一行以换行符结尾 ..
脚本可以进一步简化一点
{
w+=NF
c+=length+1
}
END {
print "Total no of lines:" NR
print "Total no of words:" w
print "Total no of chars:" c
}
您可以使用内置变量“$0”和函数“length”
BEGIN {
FS="\n| ";
}
{
for(i=1;i<=NF;i++)
w++
l++
c += length($0)+1
}
END {
print "Total no of Lines:"l;
print "Total no of words:"w;
print "Total no of chars:"c;
}
编辑:将 +1 添加到长度以考虑换行符