计算 bash 中所有列中某个数字的出现次数

Count the occurences of a number in all the columns in bash

我有这样的数据集:

1 3 3 4 5 2 3 3
2 2 2 1 2 2 2 2 
1 3 3 3 3 3 3 3
1 4 4 4 4 4 4 3

我想计算每列数字 "one" 出现的次数,所以我希望输出如下:

3 0 0 1 0 0 0 0

有谁知道如何在 bash 中做到这一点?

非常感谢! 安娜

用 awk 做。迭代字段数,如果字段等于 1,则递增数组。然后在最后打印数组。

awk '{ for (i = 1; i <= NF; ++i) { if($i == 1) { ++c[i]; } } 
  END{ for (i = 1; i <= NF; ++i) { printf "%d%s", c[i], i!=NF ? OFS : ORS; } }