今天在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进行累加。

标签: shell, 命令, 文本, value, 问题, number, 对应, 执行

相关文章推荐

添加新评论,含*的栏目为必填