以下に示す例のログがあります。SUCCESS
ログファイルで文字列を探して合計を計算しています。
$ cat ansible.log
lnx-host01.tin.com | SUCCESS => {"changed": false, "ping": "pong"}
lnx-host02.tin.com | SUCCESS => {"changed": false, "ping": "pong"}
これは単純で簡単なアプローチですが、コマンドawk
に渡されずに行自体で実行できるかどうか疑問に思いました。wc
$ awk '/SUCCESS/{print $0}' ansible.log | wc -l
66
OR
$ awk '/SUCCESS/' ansible.log| wc -l
66
答え1
ここにいる:
awk 'BEGIN { count=0 } /SUCCESS/ { count++ } END { print count }' ansible.log
もちろんこれも動作します:
grep -c SUCCESS ansible.log