可以使用awk命令实现:

awk '{sum4[$3]+=$4; sum5[$3]+=$5; sum6[$3]+=$6; sum7[$3]+=$7; sum8[$3]+=$8; sum9[$3]+=$9} END {for (i in sum4) print i, sum4[i], sum5[i], sum6[i], sum7[i], sum8[i], sum9[i]}' file.txt

其中,$3表示第三列,$4$5$6$7$8$9分别表示第4、5、6、7、8、9列的内容。使用数组sum4sum5sum6sum7sum8sum9分别保存每个不同的第三列的内容对应的第4、5、6、7、8、9列的总和。最后通过for循环遍历数组,输出结果。

需要注意的是,如果第三列的内容不唯一,那么上面的命令将会输出每个不同的第三列的内容对应的总和。如果只需要输出第三列的内容和对应的总和,可以将print语句修改为print i, sum4[i]+0, sum5[i]+0, sum6[i]+0, sum7[i]+0, sum8[i]+0, sum9[i]+0,其中的+0是为了避免出现空白行

在LINUX的一个txt文件中想要根据第三列的内容将第4、5、6、7、8、9列内容分别求和

原文地址: https://www.cveoy.top/t/topic/gS97 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录