45

ファイルdata.txtには次のものが含まれます。

1.00 1.23 54.4 213.2 3.4

スクリプトの出力は次のようになります。

ave: 54.646

いくつかの単純なスクリプトが推奨されます。

4

3 に答える 3

75

1 つの方法を次に示します。

$ awk '{s+=$1}END{print "ave:",s/NR}' RS=" " file
ave: 54.646
于 2013-03-28T12:14:31.460 に答える
36

別のオプションは、次を使用することjqです。

$ seq 100|jq -s add/length
50.5

-s( --slurp) は、各行を JSON (この場合は数値) として解析した後、入力行の配列を作成します。

またはOPの場合:

tr \  \\n<file|jq -s add/length|sed s/^/ave:\ /
于 2015-12-16T18:14:22.283 に答える
6
perl -lane '$a+=$_ for(@F);print "ave: ".$a/scalar(@F)' file

複数の行があり、単一の平均が必要な場合:

perl -lane '$a+=$_ for(@F);$f+=scalar(@F);END{print "ave: ".$a/$f}' file
于 2013-03-28T13:18:36.830 に答える