![考虑其他列中的条目对列值求和](https://linux22.com/image/204531/%E8%80%83%E8%99%91%E5%85%B6%E4%BB%96%E5%88%97%E4%B8%AD%E7%9A%84%E6%9D%A1%E7%9B%AE%E5%AF%B9%E5%88%97%E5%80%BC%E6%B1%82%E5%92%8C.png)
我有一个文件,其中报告了一些信息。我想根据 $5 列中的相对值对 $6 列中的值进行求和。详细来说,如果第 5 列中的值 >= -2.0 我应该考虑第 6 列中的相对值,否则我不会将其包含在总和中。
输入.txt
2931,401,-0.3,C,-0.5,0.1,-2,C
2935,404,-0.2,S,-3.0,0.5,4,O
2940,414,1.3,C,-0.7,,,
2947,509,2.0,N,-2.0,5,-0.4,C
Expected_output.txt -> 应包含列 $6 第 1 (0.1) 行和 4(5) 行的总和(如果第 3 行中的第 6 列不为空,则必须在总和中考虑)
5.1
我正在尝试使用awk
,但找不到正确的方法。有人可以建议一种方法吗?
谢谢。
答案1
awk -F, '($5>=-2){s+=$6}END{print s}' input.txt
-F,
告诉 awk 字段之间用逗号分隔;- the
($5>=-2)
是条件,如果为真,$6
则添加到s
; - the
s
打印在最后。如果可能没有任何内容可求和,您可能需要打印s?s:0
或初始化s
为 0 (BEGIN{s=0}
)。