Grep 从tail-f格式化输出

Grep 从tail-f格式化输出,grep,printf,tail,Grep,Printf,Tail,我试图通过tail-f跟踪日志文件,并使用grep对其进行过滤: tail-f | grep-f' 我希望输出在同一行更新,而不是在新的行上更新 标准。这意味着只要grep找到匹配项,stdout上就只有一行输出在改变 我试图用几个命令(如prinft、sed、awk、echo)分别过滤换行符并添加回车符,但没有成功。 我在一台AIX机器上,所以不是每个grep或其他命令的manpage选项都受支持 谢谢你的帮助 尝试这样做: tail -f <logfile> | awk '/so

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

tail-f | grep-f'

我希望输出在同一行更新,而不是在新的行上更新 标准。这意味着只要grep找到匹配项,stdout上就只有一行输出在改变

我试图用几个命令(如
prinft、sed、awk、echo)分别过滤换行符并添加回车符,但没有成功。
我在一台AIX机器上,所以不是每个grep或其他命令的manpage选项都受支持

谢谢你的帮助

尝试这样做:

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

系统(“”
是一种避免缓冲的小技巧。

您是否安装了
手表
?如果我理解你的要求(我不确定我是否理解),你可以这样运行:


watch“tail-f | grep-f”“”

不幸的是,系统告诉我,我没有使用watch的文件权限。我有点惊讶watch需要特殊权限。你能复制并粘贴你得到的错误消息吗?也许我描述得有点不准确,问题似乎是我的权限不允许使用watch二进制文件本身:watch--help-->-bash:/usr/sbin/watch:文件访问权限不允许指定的操作。/usr/sbin/watch在AIX上不是watch-twm的意思。看,不是给我的。只有一行。也许用bash代替另一个shell我现在用的是bash。也许这是AIX的问题?