Hit*_*nia 4 awk text-processing
awk '{ for (i = 1; i <= NF; i++) sum[i]+=$i} END{for (i in sum) print sum[i]}' file1 > file2
Run Code Online (Sandbox Code Playgroud)
这有助于按记录求和,但类似的方案无助于按列求和(也许)。如何将按列加法推广到 n 列?
cat file1
23 46 45
45 57 58
56 78 74
cat file2
114
160
208
Run Code Online (Sandbox Code Playgroud)
你想计算每条记录的字段总和,所以它只是:
awk '{sum = 0; for (i = 1; i <= NF; i++) sum += $i; print sum}' < file1 > file2
Run Code Online (Sandbox Code Playgroud)
花括号开始一个动作语句,该语句在输入的每一行上执行;没有前面的条件将其执行限制为满足此类条件的行。
在每一行:
sum变量初始化为零。NF)结束,并按sum该字段的值 ( $i)递增。sum变量的值。