科学表記法で数値を含むファイルを操作しようとしていますが、e
記号はありません。つまり、1.2e+3
と書かれてい1.2+3
ます。
私がやって考える最も簡単な方法は、awk
交換した+
とe+
使用して、gsub
機能を新しいファイルで私の計算を行います。マイナスの場合も同様です。したがって、次のコマンドを使用して簡単な修正を行うことができます
awk '{gsub("+", "e+", $1); print $1, $2, $3, $4, $5}' file_in
すべての列で同じことを行います。
ただし、ファイルには負の値も含まれているため、少し複雑になります。サンプルファイルは次のとおりです。
1.056000+0 5.000000-1 2.454400-3 2.914800-2 8.141500-6
2.043430+1 5.000000-1 2.750500-3 2.698100-2-2.034300-4
3.829842+1 5.000000-1 1.969923-2 2.211364-2 9.499900-6
4.168521+1 5.000000-1 1.601262-2 3.030919-2-3.372000-6
6.661784+1 5.000000-1 5.250575-2 3.443669-2 2.585500-5
7.278104+1 5.000000-1 2.137055-2 2.601701-2 8.999800-5
9.077287+1 5.000000-1 1.320498-2 2.961020-2-1.011600-5
9.248130+1 5.000000-1 3.069610-3 2.786329-2-6.317000-5
1.049935+2 5.000000-1 4.218794-2 3.321955-2-5.097000-6
1.216283+2 5.000000-1 1.432105-2 3.077165-2 4.300300-5
このようなファイルを操作および計算する方法についてのアイデアはありますか?
2
どのように2.698100e-2-2.034300e-4のような形式で計算しますか?
—
ctac_
これは、おそらく固定幅の列データとして解析されることを意図しているようです。列間の見かけ上の空白は、プラス記号の代わりに先行スペースを持つ正の値を表示する数値フォーマットの単なるアーティファクトです。
—
Ilmari Karonen