我正在努力重置一些awk变量。我有多行形式: 一二三......十。
每行中每个单词的各种外观。我试图计算每个单词每行一个的次数,与其他行的计数分开。
这是我到目前为止所做的:
{ for(i=length(Num); i>0; i--)
if( Num[i] == "one" )
{
oneCount++
}
else if( Num[i] == "two" )
{
twoCount++
}
else if( Num[i] == "three" )
{
threeCount++
}
...
}
当我打印出计数值时,计数不会重新初始化每个新行。我该如何解决这个问题?
非常感谢任何帮助
答案 0 :(得分:1)
;
- 分隔行中每个字段的计数,请执行以下操作:
awk -F';' '{
split("",cnt) # or "delete cnt" if using GNU awk.
for (i=1;i<=NF;i++) {
cnt[$i]++
}
for (word in cnt) {
print word, cnt[word]
}
}' file
现在还有什么需要它吗?
答案 1 :(得分:0)
尝试将BEGIN部分中的数组初始化为您想要计算的多个变量。您可以在部分中运行循环以清除每个新行开头的数组。
或者,您可以在执行每一行的程序部分中将每个变量的值重置为0或null,但我猜你有很多变量。