我有以下代码,它将输出作为文件中的行数和单词数。我怎么能再用一个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;
}
答案 0 :(得分:3)
请注意,使用该字段分隔符时,脚本将计算太多“单词”,因为字段在此处被视为单词,并且每个空格都成为字段分隔符。
此外,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
}
答案 1 :(得分:1)
您可以使用内置变量“$ 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来查看换行符