Tail、grep 和计算在一个命令中找到的实例?

use*_*029 2 linux grep tail count

我正在拖尾文件输出并搜索具有某些数据的行。我不想将数据输出到屏幕,而是计算它找到的实例数并将其发送到屏幕。实例的数量可以滚动和递增,也可以覆盖现有的并且仅在递增时显示它。那部分并不重要,我只需要找到实例的运行计数。

我现在的命令是

tail -f 日志文件 | grep '我想要的数据'

我试过使用 grep -c 和 wc -l 但没有给我想要的结果。这个特定的 Linux 发行版没有 pv 并且无法获得它。有没有办法做到这一点?

Dav*_*vid 10

GNU awk 可以很容易地做到这一点。

滚动输出:

tail -f logfile | grep 'stuff to grep for' | awk '{++i;print i}'
Run Code Online (Sandbox Code Playgroud)

您也可以省略 grep 并使用 awk 的正则表达式:

tail -f logfile | awk '/stuff to grep for/ {++i;print i}'
Run Code Online (Sandbox Code Playgroud)

对于单行输出,您可以添加 CR 使其再次从行的前面开始(在控制台上工作):

tail -f logfile | awk '/stuff to grep for/ {++i;printf "\r%d",i}'
Run Code Online (Sandbox Code Playgroud)