我有需要计算出现次数的数据。
1
2
1
2
3
1
并使用下面的 awk 命令并正常工作。
awk -F'","' '{ a[$1]++ } END { for (n in a) print n "=" a[n] } ' text.txt
和输出:
2=2
3=1
1=3
另一个问题是它需要计算数组中存储了多少个。期望我还需要计算上面输出的行数。预期输出:3
答案1
在 GNU 中awk
,length(my_arry)
将显示您关联的元素数量my_arry
已采取。
在不支持数组长度的其他实现中,您可以执行以下操作:
awk '{ … } END{ for (elements in my_arry) count++; print count }'
答案2
使用命令
awk '{a[$1]++} END { for ( n in a ) { i++; print n "=" a[n]} print i }' file
例如
#!/bin/bash
echo '1
2
1
4
5
4' | awk '{a[$1]++} END { for ( n in a ) { i++; print n "=" a[n]} print i }'
输出将是
1=2
2=1
4=2
5=1
4
答案3
通过下面的方法完成
命令:awk '{a[$1]++}END{for(x in a)print a[x]"="x}' filename
command: @praveen:~$ awk '{a[$1]++}END{for(x in a)print a[x]"="x}' p.txt
3=1
2=2
1=3
praveen@praveen:~$