这是我最近的一个答案,用于实现仅使用awk
进行简单算术评估的用例。想象一下这个
awkf () { awk -v argv="$*" 'BEGIN{ pi=3.14159265359; printf "%5.5f\n", argv }' ; }
显然我打算用它做像
这样的算法awkf "1+2"
但这些不会按预期产生输出。我最终在$*
正文的双引号内使用awk
来实现此功能。虽然它可行,但我不想这样做。有没有办法做到这一点来实现结果
awkf () { awk -v argv="$*" 'BEGIN{ pi=3.14159265359; printf "%5.5f\n", 1+2}' ; }
# ^^^^ when I pass "1+2"
即做awkf "1+2"
我希望得到的结果为3.00000
建议其他工具如bc
超出了当前问题的范围。只是想知道如何使用awk
。
答案 0 :(得分:1)
您可以将脚本编写为函数
$ function awkf() { awk "BEGIN{print $*}"; }
$ awkf 4/3
1.33333
$ awkf 3 + 4
7
要添加格式,你必须做引用舞蹈......
$ function awkf() { awk "BEGIN{printf "\"%5.5f\\n\"," $*}"; }