分类分类
2015-06-28 00:00作者:网管联盟
有时候我们需要做一些简单的计算,
如:1.1^10 应该是多少,计算一些百分率等等小事情,如果在windows下我们就知道回去用计算器了,Linux/Unix下怎么办呢。
会写C当然很快就可以解决了。但有点大才小用了,以前我一直使用gdb下的print来做,但有时候还是不大好,如: 1.1^10这样的计算目前还不知道怎么解决,简单了了解了一下,原来shell中的万能的awk就可以帮我们了。
看一些简单的事例:
[oracle@asm tmp]$ gdb
GNU gdb Red Hat Linux (6.3.0.0-1.63rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type &show copying& to see the conditions.
There is absolutely no warranty for GDB. Type &show warranty& for details.
This GDB was configured as &i386-redhat-linux-gnu&.
(gdb) p 1.4*123.324*3
$1 = 517.96079999999995
(gdb) p /x 1.4*123.324*3
$2 = 0x205
(gdb) p /x 4*24
$3 = 0x60
(gdb)
[oracle@asm tmp]$ echo | awk '{print 1.1*2*23.34;}'
51.348
[oracle@asm tmp]$ awk 'BEGIN {print (1.25^10);}'
9.31323
awk 支持不少常见的运算符, 如:
+ (加),- (减), * (乘), / (除), ^ 或 **(乘方), % 取模) 等等。
此外, awk 也提供了一些常用的数学函数, 比如 sin(x), cos(x), exp(x), log(x), sqrt(x), rand()。 使用这些运算符和函数可以直接进行一些简单的运算:
[oracle@asm tmp]$ echo | awk '{print sin(2);}'
0.909297
如果比会使用的话这个其实比使用windows下的计算器,C写的小程序要的来的快多了。
相关文章