web-dev-qa-db-ja.com

awkを使用してレコード数をカウントする

テーブル内のすべてのレコードをawkでカウントしたいのですが、NRは合計カウントではなく、すべてのレコードのレコード番号を出力します。私も試しました:

NF==4,count++{print count}

しかし、正常に動作していませんawkでどうすればいいですか?

19
Shweta

次回、ファイルのサンプルとそれで何をしたいのかを示してください(望ましい出力を表示してください)。あなたが望むものを推測するだけで、

awk 'NF==4{count++} END {print count}' file

レコードの総数はNRで示されます。

awk 'END{print NR}' file1 file2

現在、レコードの総数はFNRで示されています。

awk 'END{print FNR}' file
33
kurumi

行の総数を意味すると思います。通常、これにはwc -l <filename>を使用する必要があります。 awkを使用してこれを行うには、次を使用します。

awk '{print NR}' | tail -1

Awkのみを使用する場合は、

awk 'BEGIN{i=0}{i++;}END{print i}' <filename>
14
Hari Menon