gpt4 book ai didi

bash - bash中csv的浮点计算

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

我想用

评估单个列
$(echo "1023630 / ln( 10000 /$2 )  / ( 3435 / ln( 10000 /$2 ) - 298 )" | bc -l)

但是在读取文件时抛出语法错误。我怎样才能评估这个?我试过

while IFS="," read a b c d; do 
printf "%s,%s,%s,%s\n" $a $(echo "1023630 / ln( 10000 /$b ) / ( 3435 / ln( 10000 /$b ) - 298 )" | bc -l) $c $d;
done < abcdtemp.csv

150918021814,1421.5,1,
(sRuntime error (func=(main), adr=26): Function ln not defined.
150918021216,1421.5,1.4,

即使使用 awk 也无法正常工作

awk -F',' -v OFS="," '{$2=$(echo "1023630/ln(10000/$2)  / (3435/ln(10000/$2)-298)" | bc -l);$3=$(echo "1023630/ln(10000/$3)  / (3435/ln(10000/$3)-298)" | bc -l);}1' file

awk -F',' -v OFS="," '{$1;$2=printf "%.1f\n","1023630/ln(10000/$2)/(3435/ln(10000/$2)-298)";$3=printf "%.1f\n","1023630/ln(10000/$2)/(3435/ln(10000/$3)-298)";}1' file

任何提示或帮助,我错过了什么?谢谢。

最佳答案

您的 $2 可能是空的(或某些无效值)。

此外,bc 中的自然对数l,而不是ln

最后,在您的 awk 示例中,代码是撇号,因此根本不会计算 $2

关于bash - bash中csv的浮点计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32843673/

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