有没有一种方法可以根据先前grep的结果执行grep,而不仅仅是将多个greps管道传递给彼此。例如,假设我有以下日志文件输出:
ID 1000 xyz occured
ID 1001 misc content
ID 1000 misc content
ID 1000 status code: 26348931276572174
ID 1000 misc content
ID 1001 misc content
首先,我想要搜索整个日志文件,看是否存在"xyz occured"。如果有的话,我想要获取该事件的ID号,并在具有该ID号的所有行中搜索状态码。
我曾想过可以使用xargs或类似的东西,但似乎无法让它工作。
grep "xyz occured" file.log | awk '{ print $2 }' | xargs grep "status code" | awk '{print $NF}'
有没有关于如何实际做到这一点的想法?