2
A
回答
3
awk(1)
是因为它不具有eval()
功能错误的工具。我建议修改文件进入输入bc(1)
或使用shell算术扩展:
while read expr; do
echo "$(($expr))"
done < file
1
- awk没有的eval()功能可按
- 使用BC或外壳算术扩张既可以把它
- 但如果您在Hadoop脚本使用它,考虑子进程的问题
此外,你可以尝试以下方法:
- 考虑写在AWK的expression evaluator(from archive.org,搜索CALC3)
- 使用eval
- 使用Python的eval函数
-1
举个例子,考虑什么iftop
为您提供:
Host name last 2s last 10s last 40s cumulative
1 10.150.1.1 => 650B 533B 533B 2.08KB
85.239.108.20 <= 16.0KB 12.9KB 12.9KB 51.5KB
假设您需要2条上/下行到一行并将KB/B计算为正确的字节值(* 1024)。你可以有这样的:
iftop -i eth1 -ts 10 -Bn|egrep "<|>"| sed 's/^ //g;s/^[1-9]/x/g;s/KB/ 1024/g;s/B/ 1/g' | tr -d '\n'|tr "x" '\n'| grep .| awk '{print $1" "$11" - "$9*$10+$19*$20" "$9*$10" "$19*$20 }'
0
我知道这是可怕的,但我们可以:
awk '{system(sprintf("awk \"BEGIN {print " $0 "}\""))}'
如指出,BC,Python中的eval,庆典$(())
,更好的解决方案
最后一个建议Perl:
perl -nE 'say eval'
相关问题
- 1. 评估算术语法树表达式
- 2. 如何在序言中进行算术表达式评估?
- 3. 将bash表达式传递给AWK用于浮点算术
- 4. 递归表达式评估?
- 5. 传递lambda表达式作为参数
- 6. Java递归数学表达式评估
- 7. R:使用作为对象传递的参数来评估数据框中的表达式
- 8. 正则表达式来评估和替换算术运算符操作符
- 9. Spring webflow - 如何在评估表达式中传递会话?
- 10. 如何使用j2me评估算术表达式?
- 11. 评估数组表达式
- 12. 函数是否作为参数传递时进行评估?
- 13. 将未评估的变量作为参数传递
- 14. c函数参数评估和传递
- 15. 参考表达式的评估
- 16. GWT中的算术运算评估
- 17. 是否可以在$ {...}表达式中传递NULL作为参数?
- 18. 通过表达式传递参数作为参数
- 19. C++库函数对象用于评估数学/算术表达式
- 20. Angular:评估传递到组件属性的表达式
- 21. 评估在枫树中的表达式
- 22. 在javascript中的表达式评估
- 23. 如何避免在Python中传递作为参数的惰性属性评估
- 24. 评估表达式为Excel公式
- 25. Java中的字符串算术(评估混合类型表达式)
- 26. 如何在AngularJS中评估表达式中的表达式
- 27. 试图了解参数的评估(如果涉及一些算术运算)传递给函数
- 28. 在JSP中未评估EL表达式
- 29. 后缀表达式评估
- 30. JasperReports表达式评估
没有awk:`while read line;做echo $ [line];完成
khachik
2010-11-27 16:37:12
@khachik - 这是一个简单的例子。实际文件包含2列 - 6 1 * 2 * 3等等,我必须在评估之前拆分这一行。 – Fakrudeen 2010-11-27 17:01:59
你可以用`awk`或别的东西来分割,然后评估算术运算。 – khachik 2010-11-27 17:03:37