我正在搜索以下格式的日志文件
<date> <connection from: ip> <new connection ID> <info>
<date> <connection ID> <info>
我使用以下命令来获取我的 IP,但在此日志文件中搜索我的连接 ID 需要几分钟时间。
tail -f logfile | grep ip --line-buffered
是否可以先 grep 查找 IP,然后根据连接 ID 继续搜索?
连接 ID 不可预测,并且匹配后日志中的以下行不一定是与我的 IP 绑定的连接 ID。
答案1
不。
当你这样做时
tail -f logfile | grep "ip-address" --line-buffered
你会仅有的获取与模式匹配的线条ip-address
。此后对管道的进一步grep
调用将无法看到原始日志文件中的任何其他行。
如果没有看到日志文件的一些示例,就很难(盲目地)找到可行的解决方案。
答案2
您可以在 grep 命令中使用多种模式,例如用“ip”和“连接 ID”来 grep 两行:
tail -f logfile | grep -E 'ip|connection ID' --line-buffered