Awk
在awk中將指數符號轉換為十進制數
我有空格分隔的文件。該文件包含文本以及指數格式的數字。我想將指數數字轉換為實際的十進制值。有人可以建議我如何實現這一目標嗎?
使用 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是位數)