计算 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; } }
我有这样的数据集:
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; } }