値の各行の下の列数の計算

値の各行の下の列数の計算

値が 5 未満の列数を行単位で計算する必要があります。私のデータは次のとおりです。

1.2 8.9  4.5  2.8 
4.9 10.1 15.3 1.1 
2.1 4.3  3.9  3.3 
.
.

したがって、希望の出力は次のようになります。

3
2
4

ベストアンサー1

レコードあたりのフィールド数(デフォルトでは行ごとにスペースで区切られた列)はですNF。ループを使用して、レコード内のすべてのフィールドを繰り返すことができますfor (i = 1; i <= NF; ++i)。フィールドのデータはループ内で使用できますi$iたとえば、

awk '{ count = 0; for (i = 1; i <= NF; ++i) if ($i < 5) ++count; print count }'

またはもう少し詳しく書いて、

awk '
    {
        count = 0

        for (i = 1; i <= NF; ++i)
            if ($i < 5)
                ++count

        print count
    }'

ifandステートメントの本文forは単にステートメントであるため、追加の改行文字は必要ありません{ ... }(Cプログラミング言語と似ていますが、Perlとは異なります)。同じ行であるステートメントを別のステートメントから切り離したくない限り、行末は必要ありません(たとえば、;上記の2つの同等のコードスニペットの使用法の比較)。;

おすすめ記事