gpt4 book ai didi

bash - 在csv中将科学记数法转换为十进制

转载 作者:行者123 更新时间:2023-11-29 09:51:21 25 4
gpt4 key购买 nike

<分区>

我有一个包含 150 列的大型 csv 文件,下面给出了一个示例::

id,c1,c2,c3,c4,c5...
1,0,acc,123.4E+03,0,bdd,...
2,1.299E-05,bef,1.666E-08,23,ghh....

如您所见,某些字段具有科学记数法的值(考虑到 csv 文件超过 50 亿行,所有列都具有科学记数法的值是未知的)。

我需要将科学计数法中的值转换成相应的十进制形式。我遇到了以下解决方案:Convert scientific notation to decimal in multiple fields并得到如下代码:

#!/usr/bin/awk -f
BEGIN {
d = "[[:digit:]]"
OFS = FS = ","
}
{
delim = ""
for (i = 1; i <= NF; i++) {
if ($i ~ d "E+" d d d "$") {
printf "%s%.41f", delim, $i
}
else {
printf "%s%s", delim, $i
}
delim = OFS
}
printf "\n"
}

但是上面的脚本对我不起作用。上面的脚本按原样返回我的输入文件(对于 E+ 值和 E- 值),没有任何转换。我对 shell 脚本还很陌生,有什么想法吗?

我正在以这种形式执行脚本:

chmod u+x awkscript.awk
./awkscript.awk inputfile.csv

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com