gpt4 book ai didi

linux - 可变长度表的 Bash 列总和

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:50 24 4
gpt4 key购买 nike

我正在尝试获取包含数字的制表符的列总和(第一个列除外)。

要找出列数并将其存储在我使用的变量中:

cols=$(awk '{print NF}' file.txt | sort -nu | tail -n 1

接下来我想计算该列中所有数字的总和,并将其再次存储在 for 循环中的变量中:

for c in 2:$col
do
num=$(cat file.txt | awk '{sum+$2 ; print $0} END{print sum}'| tail -n 1
done

这个num=$(cat file.txt | awk '{sum+$($c) ; print $0} END{print sum}'| tail -n 1本身有一个固定的数字,没有变量输入可以找到,但我无法让它接受 for-loop 变量。

感谢支持

附注如果我可以在没有循环问题的情况下立即对所有列(除了第一列)求和,那也很好。

最佳答案

假设您想要各个列的总和,

$ cat file
1 2 3 4
5 6 7 8
9 10 11 12

$ awk '
{for (i=2; i<=NF; i++) sum[i] += $i}
END {for (i=2; i<=NF; i++) printf "%d%s", sum[i], OFS; print ""}
' file
18 21 24

关于linux - 可变长度表的 Bash 列总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46587816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com