gpt4 book ai didi

math - 如何强制 AWK 将字符串计算为数学表达式?

转载 作者:行者123 更新时间:2023-12-01 08:45:51 24 4
gpt4 key购买 nike

有没有办法在 awk 中将字符串计算为数学表达式?

balter@spectre3:~$ echo "sin(0.3) 0.3" | awk '{print $1,sin($2)}'
sin(0.3) 0.29552

我想知道一种将第一个输入评估为 0.29552 的方法。

最佳答案

您可以创建自己的 eval 函数,该函数再次调用 awk 以执行您希望它执行的任何命令:

$ cat tst.awk
{ print eval($1), sin($2) }

function eval(str, cmd,line,ret) {
cmd = "awk \047BEGIN{print " str "; exit}\047"
if ( (cmd | getline line) > 0 ) {
ret = line
}
close(cmd)
return ret
}

$ echo 'sin(0.3) 0.3' | awk -f tst.awk
0.29552 0.29552

$ echo '4*7 0.3' | awk -f tst.awk
28 0.29552

$ echo 'tolower("FOO") 0.3' | awk -f tst.awk
foo 0.29552

关于math - 如何强制 AWK 将字符串计算为数学表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54156761/

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