ディレクトリには複数の "ascii"テーブルがあり、そのうちのいくつかは小数点で表される数字を持ち、いくつかは次のように浮動小数点で表される数字を持っています。
1 1 1423
1 2 1589
1 3 0.85e 5
1 4 0.89e 4
1 5 8796
...
テーブルのすべての値を10進数に変換する方法はありますか?エディタを使うと効果があると聞きましたが、tr
変換の仕方がわかりません。
ベストアンサー1
このsed
スクリプトは、「e」の後のスペースを削除し、awk
各フィールドのみを印刷します($ 3に1を掛けると、fpではなく10進数に「変換」されます)。
$ sed -e 's/e /e/g' file | awk '{print $1, $2, $3 * 1}'
1 1 1423
1 2 1589
1 3 85000
1 4 8900
1 5 8796
これはファイルの浮動小数点数を仮定します。
- "e"の後に余分なスペースがあります。
- 正の指数の場合は「+」を省略します。
- 非常に大きな指数はありません。それ以外の場合は
awk
fpとして印刷されます。
awk
's/e /e/' 変換が可能ですsed
が(だから必要ありません)、遅すぎて脳が疲れました。 sed | awk
シンプルで効果的です。