awk 在一行中搜索字符串并计算总数

kro*_*516 4 awk

我有类似于下面给出的示例的日志,我只是SUCCESS在日志文件中查找一个字符串并计算总数。

$ cat ansible.log
lnx-host01.tin.com | SUCCESS => {"changed": false, "ping": "pong"}
lnx-host02.tin.com | SUCCESS => {"changed": false, "ping": "pong"}
Run Code Online (Sandbox Code Playgroud)

这是一种简单明了的方法,但我想知道是否可以将awk其作为单行代码来完成,而无需传递给wc命令。

$ awk '/SUCCESS/{print $0}'  ansible.log | wc -l
66

OR

$ awk '/SUCCESS/' ansible.log| wc -l
66
Run Code Online (Sandbox Code Playgroud)

A.B*_*A.B 5

这里是:

awk 'BEGIN { count=0 } /SUCCESS/ { count++ } END { print count }' ansible.log
Run Code Online (Sandbox Code Playgroud)

当然,这也有效:

grep -c SUCCESS ansible.log
Run Code Online (Sandbox Code Playgroud)