我正在尝试将awk用作某些类型的元素计数器,如下所示,但是我遇到了语法错误。
cat file | awk '{if($2>$3)A[$1]++}END{for(index in A){print index, A[index]}}'
有人可以帮忙吗?
以下是语法错误:
awk: {if($2>$3)A[$1]++}END{for(index in A){print index, A[index]}}
awk: ^ syntax error
awk: {if($2>$3)A[$1]++}END{for(index in A){print index, A[index]}}
awk: ^ syntax error
awk: {if($2>$3)A[$1]++}END{for(index in A){print index, A[index]}}
awk: ^ syntax error
非常感谢你!
答案 0 :(得分:3)
index
似乎是reserved word。将其更改为其他内容。也许是key
。
答案 1 :(得分:1)
凯文指出,index
是一个保留字。尝试为key
使用不同的array subscripts
。
无用地使用cat
。 awk
可以filename
作为输入。做这样的事情 -
awk '{if($2>$3)A[$1]++}END{for(i in A){print i, A[i]}}' file
如果$2>$3
是唯一的条件,那么您可以将其缩短为以下内容 -
awk '$2>$3{A[$1]++}END{for(i in A){print i, A[i]}}' file