linux - awk 列中选定值的总和
问题描述
我想对中的列中的选定值求和awk
。第二列是时间。我想4th
每秒从列中添加值。
输入:
1 0.1 2 1 3
2 0.3 2 2 3
4 0.6 2 3 3
2 1.1 2 4 3
5 1.3 2 5 3
6 2.2 2 6 3
7 2.7 2 7 3
8 3.6 2 8 3
9 3.9 2 1 3
10 4.1 2 1 3
预期输出(我们有5
几秒钟):
6
9
13
9
1
编辑:
这是我的code
,但我不知道它如何动态工作。
awk '$2>x && $2<=y (sum+=$4) END {print sum}' filename
where x
- 开始时间,y
- 结束时间。它仅适用于静态值,这意味着现在我只能在选定的一秒内获得结果。
解决方案
试试下面的awk
程序
BEGIN {
total = 0
secondEnd = 1
}
{
if($2 < secondEnd) {
total += $4
next
}
while($2 > secondEnd) {
print(total)
total = 0
secondEnd++
}
total = $4
}
END {
print(total)
}