次のファイルがあります。
0.0451660231
0.0451660231
0.0527343825
0.3933106065
0.3970947862
0.0489502028
0.3592529595
0.3592529595
0.3592529595
0.3630371392
0.3630371392
0.3668213189
0.4008789659
0.1397705227
各行を最大値に分割したいと思います。
私がやった
cut -f1 -d"," CVBR1_hist | sort -n | tail -1 > maximum
awk -v c=$maximum '{print $1/c}' CVBR1_hist > CVBR1_norm
このエラーがあります。
awk: cmd. line:1: (FILENAME=CVBR1_hist FNR=1) fatal: division by zero attempted
どのように解決すべきかわかりません。誰が私を助けることができますか?
ベストアンサー1
CVBR1_hist
ファイルの内容を数値で並べ替えると、正しいデータが生成されると想定されます。
$ sort -n CVBR1_hist
0.0451660231
0.0451660231
0.0489502028
0.0527343825
0.1397705227
0.3592529595
0.3592529595
0.3592529595
0.3630371392
0.3630371392
0.3668213189
0.3933106065
0.3970947862
0.4008789659
その後、次のコマンド置換を使用して変数に最大値を格納できます。
maximum="$( sort -n CVBR1_hist | tail -n 1 )"
正規化された値は次のように取得できますawk
。
awk -v m="$maximum" '{ print $1/m }' CVBR1_hist >CVBR1_norm
したがって、欠けている唯一のことは、変数に最大値を正しく保存することです。