1

以下のようなデータ行を含むファイルがあります

300,,,292,15.4,0,04/16/12 20:10:39
200,,,292,15.4,0,04/16/12 20:10:39
100,,,292,15.4,0,04/16/12 20:10:39

awk を使用して、このように最初の列を要約しています

awk -F ',' '{ x = x + $1 } END { print x }' MyFile

問題なく600を返しています。

{ print x }ファイル内の行数も計算するようにこのコマンドを変更したいのですが、代わりに{ print x / y }y がファイル内の行数です。

したがって、600 / 3 = 200 が返されます。

4

2 に答える 2

4

これまでに処理されたレコードの数は NR です。

awk -F, '{ x += $1 } END { print x " " x/NR }' MyFile

処理されたすべてのファイルで NR がカウントされます。ここでは、それは単一のファイルです。の少なくともいくつかのバージョンには FNR もありawkます。現在のファイルで処理されたレコードの数をカウントします。この例では、単一のファイルがあるため、常に NR == FNR です。

于 2012-04-16T19:19:35.077 に答える
0

レコード数のNR を試しましたか?

awk -F ',' '{ x = x + $1 } END { print x/NR }' MyFile
于 2012-04-16T19:20:05.587 に答える