awk 搜索字符串并计算单行中的总数

awk 搜索字符串并计算单行中的总数

我有如下给定示例的日志,我只是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

相关内容