ログファイルに数値を追加する方法

ログファイルに数値を追加する方法

Messages以下のように、ログファイルから値の合計(427852+ 403553+ 385167)を取得したいと思います。私はカットと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

Messages:ファイルの9番目のフィールド(例では、9番目のフィールドはそれ以降のフィールド)の合計のみを希望する場合は、次のことができます。

$ 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。 GNUがない場合は、いつでも次のものを使用できますperl

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

おすすめ記事