我写了一个bash脚本,最终调用了这个:
awk 'BEGIN { print "Calculate sum of column: "} { sum += 5; print $0 } { print "Sum of column:", sum, "\n"}'
我想稍微编辑一下,因此要汇总的列将作为参数从bash包装器脚本传递。我试过了:
awk -v var="$column" 'BEGIN { print "Calculate sum of column: "} { sum += var; print $0 } { print "Sum of column:", sum, "\n"}'
但它基本上添加了相同的数字x NR,这是预期的。我不知道如何制作:
sum += var
翻译为
sum += $var.
以便它捕获列号。
到目前为止,我已尝试过:
awk -v var="$column" 'BEGIN { PRINT "Sum:" } { sum += $var; } END { print sum } FILE_IN > FILE_OT
有人可以帮忙吗?
答案 0 :(得分:1)
对不起,这是不可复制的。如果指定了列,则工作正常:
$ column=5;echo "a b c d 15 f" |awk -v var="$column" 'BEGIN { print "Sum:" } { sum += $var; } END { print sum }'
Sum:
15
PS:不要用大写字母书写。
使用文件;
$ cat file11
a b c d 15 f
$ column=5;awk -v var="$column" 'BEGIN { print "Sum:" } { sum += $var; } END { print sum }' file11
Sum:
15