Вы почти там, просто сделайте это в петле:
awk '{for(i=2;i<=NF;i++){if(NR==1)h[i]=$i;else if($i>0.1)x[i]++}}END{for(i in x){print h[i]": "x[i]}}'
Если ваш скрипт использует синтаксис bash, он должен начинаться с #!/bin/bash
. Если вы выполните его с /путь/к/скрипту
, то все будет хорошо. Если вы явно вызываете интерпретатор (оболочку), то вы должны вызвать правильный интерпретатор, т.е. bash
, а не sh
или perl
или что-то в этом роде.
Существует несколько вариантов sh
. Баш - это один. Баш - это другой. По сравнению с bash, dash имеет меньше возможностей, но работает быстрее и использует меньше памяти. Поэтому Ubuntu выбрала dash в качестве sh
; если вам нужны дополнительные возможности bash, то n вы должны вызвать его в любом случае явно.