- 论坛徽章:
- 1
|
本帖最后由 tank064 于 2012-09-03 17:43 编辑
统计文件中个字符或字符串个数
[root@L ~]# cat file
A B C S
C D E A
B S D A
D B S A
E S C D
S A B D
awk '{for(i=1;i<=NF;i++)array[$i]++} END{for(k in array)printf("%s\t%d\n",k,array[k])}' file
A 5
B 4
C 3
D 5
E 2
S 5
这里array数组以文件的某一个字符或字符串为下标,遇到相同的字符或字符串时 array[**] 大小自增1;
请问:这里的for(k in array) 是awk中以字符串为数组下标的 数组类型的特殊用法么?如果是,可以给小弟些相关资料查阅么?或给出相应说明也行
若对于普通数组array[0]=a; array[1]=b; array[2]=c; array[3]=d ...... ;这时for(k in array) 这里的k 是数组下标 0,1,2,3, 还是对应内容a,b,c,d
PS:对于 for i in ${array[@]} 这里的i 是数组的元素内容。
望各位大大能帮小弟解答下疑惑!
|
|