linux – 使用awk根据另一列的值对列的值求和
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 使用awk根据另一列的值对列的值求和,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含932字,纯文字阅读大概需要2分钟。
内容图文
![linux – 使用awk根据另一列的值对列的值求和](/upload/InfoBanner/zyjiaocheng/959/0a5c8ae6125e43e685deaeb9f3a83287.jpg)
我试图使用awk在列中对某些数字求和.我想在“史密斯”的第3列中总结得到总共212个.我可以使用awk而不仅仅是“史密斯”对整列进行求和.我有:
awk 'BEGIN {FS = "|"} ; {sum+=$3} END {print sum}' filename.txt
我也在使用腻子.感谢您的任何帮助.
smiths|Login|2
olivert|Login|10
denniss|Payroll|100
smiths|Time|200
smiths|Logout|10
解决方法:
awk -F '|' '$1 ~ /smiths/ {sum += $3} END {print sum}' inputfilename
> -F标志设置字段分隔符;我把它放在单引号中,因为它是一个特殊的shell字符.
>然后$1~ / smiths /将以下{code block}仅应用于第一个字段与regex / smiths /匹配的行.
>其余部分与您的代码相同.
请注意,由于您实际上并未使用正则表达式,只是一个特定的值,您可以轻松使用:
awk -F '|' '$1 == "smiths" {sum += $3} END {print sum}' inputfilename
哪个检查字符串相等.这相当于使用regex / ^ smiths $/,如另一个答案所述,其中包括^ anchor仅匹配字符串的开头(字段1的开头)和$anchor仅匹配结束串.不确定你对正则表达式有多熟悉.它们非常强大,但在这种情况下,您可以轻松地使用字符串相等性检查.
内容总结
以上是互联网集市为您收集整理的linux – 使用awk根据另一列的值对列的值求和全部内容,希望文章能够帮你解决linux – 使用awk根据另一列的值对列的值求和所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。