0

我正在尝试通过 tail -f 跟踪日志文件并使用 grep 对其进行过滤:

tail -f <log-file> | grep -F '<some string>'

我希望在同一行更新输出,而不是在标准输出上获取新行。这意味着只要 grep 找到匹配项,stdout 中只有一行输出会发生变化。

我尝试过滤换行符,分别添加带有几个命令的回车符,prinft, sed, awk, echo但没有得到它的工作。我在 AIX 机器上,因此并非支持 grep 或其他命令的每个联机帮助页选项。

感谢帮助!

4

2 回答 2

0

尝试这样做:

tail -f <logfile> | awk '/some string/{system("");printf "\r%s", $0}'

system("")是一个避免缓冲的小技巧。

于 2013-02-27T16:54:11.680 回答
0

watch安装了吗?如果我理解你的要求(我不确定我是否做到了),你可以运行这样的东西:

watch "tail -f <log-file> | grep -F '<some string>'"

于 2013-02-27T16:55:56.630 回答