如何在日志文件中添加数字

如何在日志文件中添加数字

我想Messages从如下日志文件中获取值的总和(427852+ 403553+ 385167)。我尝试过 cut 和 awk,但没有运气。

2019-08-27 21:52:49 INFO  =- Reporting Cycle:10000 Lines:427852 Messages: 427852 IO_time:1391 Active Threads: 3
2019-08-27 21:52:59 INFO  =- Reporting Cycle:10000 Lines:403553 Messages: 403553 IO_time:1212 Active Threads: 3
2019-08-27 21:53:09 INFO  =- Reporting Cycle:10000 Lines:385167 Messages: 385167 IO_time:1200 Active Threads: 3

答案1

如果您只想要文件第 9 个字段的总和(第 9 个字段是Messages:示例中后面的字段),您可以执行以下操作:

$ awk '{k+=$9}END{print k}' file
1216572

如果字段可以更改或者后面实际上没有空格Messages:(其他字段似乎都没有空格),则可以提取消息后面的数字,然后将其求和:

$ grep -oP 'Messages:\s*\K\d+' file | awk '{k+=$1}END{print k}' 
1216572

上面需要 GNU grep,如果你没有,你可以随时使用perl

$ perl -lne '/Messages:\s*(\d+)/; $k+=$1; END{print $k}' file
1216572

相关内容