linux 实现一列数据的求和、累积求和、及1/2求和

时间:2024-03-08 13:44:18

1、测试数据

[root@centos7 test]# cat a.txt
4
8
2
6

 

2、直接求和

[root@centos7 test]# awk \'{sum += $1}END{print sum}\' a.txt
20

 

3、累积求和

[root@centos7 test]# cat a.txt
4
8
2
6
[root@centos7 test]# awk \'{sum += $1}{print sum}\' a.txt
4
12
14
20

 

4、在前一行和的基础上递增下一行的1/2

[root@centos7 test]# paste -d " " a.txt <(cat <(awk \'NR ==1 {print $0/2}\' a.txt) <(awk \'{sum+=$1}{print sum}\' a.txt | sed \'$d\'))| awk \'{print $0,$2 + $1/2}\'
4 2 4
8 4 8
2 12 13
6 14 17