我有一个包含一列的文件,我想在文件底部的此列中添加数字,并在每行中打印总和。例如,如果我有以下数字:
1
2
3
4
5
6
我希望结果如下:
21(6+5+4+3+2+1)
20(6+5+4+3+2)
18(6+5+4+3)
15(6+5+4)
11(6+5)
6 (6)
如果我要从上到下添加数字,我可以想到以下内容我想知道是否有办法使用linux,cat,awk等来反转总和的顺序。任何帮助或建议都表示赞赏。
`cat file.txt | gawk ' { sum+=$1; print sum; }' > Final.file`
答案 0 :(得分:3)
$ tac file | awk ' { sum+=$1; print sum }' | tac
21
20
18
15
11
6
答案 1 :(得分:2)
如果你真的想看看等式:
seq 6 |
awk '
{
sum[NR] = $1
eq[NR] = $1
for (i=1; i<NR; i++) {
sum[i] += $1
eq[i] = $1 "+" eq[i]
}
}
END {for (i=1; i<=NR; i++) print sum[i] "(" eq[i] ")"}
'
21(6+5+4+3+2+1)
20(6+5+4+3+2)
18(6+5+4+3)
15(6+5+4)
11(6+5)
6(6)