格式化tail -f的输出

时间:2013-02-27 16:45:02

标签: grep printf tail

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

过滤它

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

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

我尝试过滤新行,分别使用prinft, sed, awk, echo这样的几个命令添加回车符,但是没有得到它。 我在AIX机器上,因此不支持grep或其他命令的每个联机帮助页选项。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

尝试这样做:

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

system("")是一个小小的黑客,以避免缓冲。

答案 1 :(得分:0)

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

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