我有一个小数据库,如下所示:

    10/08/2011      laptop  4
    10/08/2011      laptop  2
    10/08/2011      desktop 2
    10/08/2011      laptop  1
    10/08/2011      pen     5
    10/08/2011      pen     2
    10/08/2011      waterbottle     8
    10/2/2011       ring    11
    10/02/2011      waterbottle     5
    10/2/2011       ring    2
    10/2/2011       ring    4
    10/2/2011       keyboard        20
    10/2/2011       keyboard        10
    11/2/2011       mouse   10
    11/2/2011       mouse   4
    11/2/2011       mouse   10
    11/2/2011       door    55

我想计算这些商品每天售出多少。我用 awk 尝试了一些东西,如下所示,但它失败了......
awk '{arr[$1,$2]++;}END {for (i in  arr){ for (j in arr[$i]){print arr[$i,$j];}}}' data

任何想法,怎么做?我会感谢你的帮助。谢谢

最佳答案

awk 数组是从键到值的映射。您通过尝试获取多维数组而产生的实际上是一个具有更复杂键的数组。因此,您应该迭代组合键,而不是用于构建它们的索引:

awk '{ arr[$1,$2]++ } END {for (key in  arr){ print arr[key] } }' data

关于linux - awk 中的多维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7755049/

10-10 18:23
查看更多