Awk

在awk中將指數符號轉換為十進制數

  • March 1, 2018

我有空格分隔的文件。該文件包含文本以及指數格式的數字。我想將指數數字轉換為實際的十進制值。有人可以建議我如何實現這一目標嗎?

使用 GNU awk

gawk -v RS='[-+]?[0-9.]+[eE][-+]?[0-9]+' \
    -v ORS= \
    -v CONVFMT=%.1000g '{print $0 (RT == "" ? "" : +RT)}'

gawk將記錄分隔符匹配的內容儲存到RT變數中,我們將其轉換為浮點數,不帶CONVFMT.

對於更高的精度,例如1e123要變成1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000而不是999999999999999977709969731404129670057984297594921577392083322662491290889839886077866558841507631684757522070951350501376,用gawk 4.1或更高版本添加-M -v PREC=1000(1000是位數

引用自:https://unix.stackexchange.com/questions/315729