如何解决将模式之间的第四场数据相加
假设我的数据是:
* dnet * 1234 1.2
1个端口* 12 2.3
3端口1 * 34 0.2
7 * 15 0.1
* dnet * 234 0.2
2 * 12 0.1
4 * 123 * 234 1.2
字段之间用空格隔开。
在此,我想获取每个* dnet中存在的第4个数据字段的总和。有些字段具有第四字段数据,有些则没有。我想要每个* dnet单独的第4个字段总和值。
我尝试使用awk,但无法获取。如果有人帮助,将非常感激。
上面的输出看起来像
* dnet * 1234 1.2 2.5
* dnet * 234 0.2 1.2
解决方法
对此评论发表了评论,并做了一些简化……
awk '
# look for header line
$1=="*dnet" {
# print any previously calculated sum
if (header) print header,sum
# reset sum for next block of lines
sum = 0
# save new header line
header = $0
# skip remaining actions
next
}
# if we get here,we know this is not a header line
# if there is a 4th field,add it to the sum
$4 {
sum += $4
}
END {
# print the final sum
if (header) print header,sum
}
' datafile
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。