如何用jq --stream过滤Tetragon事件流中的process_exit记录?
用jq --stream过滤Tetragon事件流中的process_exit记录
针对Tetragon事件JSON流的过滤需求,要仅保留process_exit类型的记录,你之前的jq表达式语法顺序有误,正确用法如下:
假设每个事件的顶级键为process_exit(即事件结构为{"process_exit": {...}}),使用以下命令:
tail -f file | jq --stream ' select(.[0][0] == "process_exit") | fromstream([.] + inputs | truncate_stream(1)) '
说明:
select(.[0][0] == "process_exit"):筛选出所有路径首元素为process_exit的流条目,确保只处理目标类型的事件。[.] + inputs:收集当前条目及后续同属该事件的所有流数据,保证能完整重建JSON对象。truncate_stream(1):截断路径的第一个元素(去掉process_exit前缀),避免重建后的对象出现冗余嵌套。fromstream(...):将处理后的流数据重新还原为标准JSON对象。
如果需要保留顶级的process_exit键(即输出完整的{"process_exit": {...}}结构),可简化为:
tail -f file | jq --stream ' fromstream(select(.[0][0] == "process_exit")) '
内容的提问来源于stack exchange,提问作者rookie099
相关产品推荐
相关产品推荐

