每行 grep 输出出现后运行命令

每行 grep 输出出现后运行命令

我想在正则表达式模式出现后不断监视系统日志并执行一些计算,并在命令中使用 grep 输出,并继续监视新的匹配行。我认为实现此目的的最佳方法是使用tail -f此输出并将其传输到grep.唯一的问题是我不知道如何根据每个新的输出行运行新命令并继续直到终止。

关于我可以在这里使用什么有什么想法吗?

答案1

你想要的是将其传输一段时间来阅读。仅计算出现次数的简单示例:

#!/bin/bash
a=0
tail -f input.txt | grep 'pattern' | while read line ; do
    a=$((a+1))
    echo -e "found match in $line , occurrence no. $a"
done

尝试过dd if=/dev/random of=file作为参考。假设您只需要“模式”作为触发器,而不需要前面的行。

相关内容