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

计算bash中所有列中出现的数字,bash,counting,Bash,Counting,我有这样一个数据集: 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 我想计算每列出现数字“1”的次数,因此我希望输出如下: 3 0 0 1 0 0 0 0 有人知道如何在bash中实现它吗 多谢各位! 安娜用awk做。迭代字段数,如果字段等于1,则增加数组。然后在最后打印阵列 awk '{ for (i = 1; i <= NF; ++i) { if($i == 1) { ++c[i]; } }

我有这样一个数据集:

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
我想计算每列出现数字“1”的次数,因此我希望输出如下:

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; } }

awk'{for(i=1;i在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; } }

awk'{for(i=1;i)是一个很好的解决方案,但是您忘记了在第一行末尾使用大括号并关闭引号。这个解决方案很好,但是您忘记了在第一行末尾使用大括号并关闭引号。