• ベストアンサー

平均値の算出

以下のようなタブ区切りファイルで、 aaa xxxx 10 bbb yyyy 20 ccc zzzz 30 3つ目のカラムの平均値を算出するUNIXコマンドORシェルってできるのでしょうか? (10+20+30)/3 = 20 アウトプットとしては、平均値の"20"と行数の"3"が欲しいです。 よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.2

awkだと、 awk '{sum+=$3}END{print "LINE=" NR;print "AVE=" sum/NR}' inputfile

takkan39
質問者

お礼

回答、ありがとうございました。 おかげさまで、希望の処理が実現できました。

その他の回答 (1)

  • you-m
  • ベストアンサー率58% (190/327)
回答No.1

とりあえず、純粋にBシェルスクリプトで書きました。 OSは選ばないと思います。 awkスクリプトならば、もう少しきれいな処理になるかもしれません。 インデントは消えてしまうので、適当に整形してください。 ---------------------------- #!/bin/sh DATAFILE=$1 LINE_COUNT=0 SUM_DATA=0 while read LINE do LINE_COUNT=`expr ${LINE_COUNT} + 1` DATA=`echo ${LINE} | cut -d' ' -f3` SUM_DATA=`expr ${SUM_DATA} + ${DATA}` unset DATA done < ${DATAFILE} echo "件数="${LINE_COUNT} echo "平均="`expr ${SUM_DATA} / ${LINE_COUNT}`

takkan39
質問者

お礼

回答、ありがとうございました。 大変参考になりました。

関連するQ&A

専門家に質問してみよう