shell命令的文本计算教程
今天在linux上碰到一个对比文件数据的问题,要用原始数据测试出算法所算出的数据是否正确,这要对原始数据进行操作和计算,下面我们用shell命令来解决这个问题。这里权限是root,是因为是在本人自己电脑上操作。
文本文档:
number value
1 10
2 20
3 30
4 40
5 50
问题1:计算value对应的总和
这里的END起分割作用,表明sum+=$2整个过程执行完成后,才执行print操作。而不是只执行一次后就执行print操作。请看
不加END只执行一次,就打印了。
问题2:求value值对应的平均数
这里的n其实加了6次,所以最后要减1次,把value对应的行也加了,实际操作中不需要加第一行,我这里起方便阅读的作用反而麻烦的了。看
最后n值为6
问题3:求大于number大于1且大于5对应的平均数
问题4:如果number有相等的,把它们对应的value相加输出
这里$1表示number对应的变量,如果有相同的number,s[number]就会累加,得出相加的值。
来看一个3列的:
6 1 10
2 4 3
6 1 2
2 4 7
问题5: 求$1和$2都相等的$3的和
$1和$2都作为s的变量进行相加。
问题6:求$1相等的$2和$3的和
$1为变量,分别对$2和$3进行累加。