linux 中awk命令输出行、列的累加和

 

1、输出列的累加和

复制代码
[root@PC1 test2]# ls
a.txt
[root@PC1 test2]# cat a.txt
8 4 2
2 8 3
1 3 4
3 4 6
[root@PC1 test2]# awk '{sum += $1} {print sum}' a.txt    ## 第一列累加和
8
10
11
14
[root@PC1 test2]# awk '{sum1 += $1; sum2 += $2; sum3 += $3} {print sum1, sum2, sum3}' a.txt ## 1-3列累加和
8 4 2
10 12 5
11 15 9
14 19 15
[root@PC1 test2]# awk '{for(i = 1; i <= NF; i++) {sum[i] += $i; printf("%d ", sum[i])} {printf("\n")}}' a.txt
8 4 2                                                               ## 所有列累加和
10 12 5
11 15 9
14 19 15
复制代码

 

 

2、输出行的累加和

复制代码
[root@PC1 test2]# ls
a.txt
[root@PC1 test2]# cat a.txt
8 4 2
2 8 3
1 3 4
3 4 6
[root@PC1 test2]# awk 'NR == 1 {for(i = 1; i <= NF; i++) {sum += $i; printf("%d ", sum)} {printf("\n")}}' a.txt
8 12 14                                               ## 第一行累加和
[root@PC1 test2]# awk 'NR == 3 {for(i = 1; i <= NF; i++) {sum += $i; printf("%d ", sum)} {printf("\n")}}' a.txt
1 4 8                                                 ## 第三行累加和
[root@PC1 test2]# awk '{for(i = 1; i <= NF; i++) {sum[NR] += $i; printf("%d ", sum[NR])} {printf("\n")}}' a.txt
8 12 14                                               ## 所有行累加和
2 10 13
1 4 8
3 7 13
复制代码

 

posted @   小鲨鱼2018  阅读(2433)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2021-06-01 c语言 11-8
2021-06-01 c语言 11-7
2021-06-01 c语言中转换字符串函数 atoi函数
2021-06-01 c语言中 strncmp函数, 函数原型和头文件。
2021-06-01 c语言中strcmp函数,函数原型和函数头文件
2021-06-01 c语言中strncat函数,函数原型以头文件
2021-06-01 c语言中strcat函数,函数原型和函数头文件
点击右上角即可分享
微信分享提示