我想从多个日志文件中获取一个模式,这些日志文件会被某些进程不断更新,并且会连续地延迟这个grep的输出.下面的命令不起作用,我得到
- tail:警告:无限期地遵循标准输入是无效的
tail -f  | grep --line-buffered "Search this: " /var/links/proc2/id/myprocess*/Daily/myprocess*.log
有人可以解决这个问题吗?
mu *_*u 無 11
你应该看看multitail工具(安装使用sudo apt-get install multitail)
简而言之,对于multitail,您需要使用该--mergeall标志在一个位置查看所有输出
multitail --mergeall /var/links/proc2/id/myprocess*/Daily/myprocess*.log  | grep --line-buffered "Search this: " 
您可以在不使用grep的情况下执行相同操作
multitail -E "Search this: " --mergeall /var/links/proc2/id/myprocess*/Daily/myprocess*.log  
要使用multitail单独查看输出,这也将提供文件名.
multitail -E "Search this: " /var/links/proc2/id/myprocess*/Daily/myprocess*.log 
错误是您将文件提供给grep命令而不是尾部.
tail -f需要将文件作为输入.尝试:
tail -f  /var/links/proc2/id/myprocess*/Daily/myprocess*.log | grep --line-buffered "Search this: "
获取文件名(但它不会像grep输出那样):
tail /var/links/proc2/id/myprocess*/Daily/myprocess*.log | grep --line-buffered -e'^==> .* <==$' -e'Search this: '