我需要从日志文件中提取某些 json 数据(具有 datalist 成员),但只有 map 值不是 200。
现在我有两个 sed 脚本,一个从日志文件中提取 json 数据:
sed -n 's/.*\({\"datalist\".*}\).*/\1/p' full.log > new.log
如果 map 字段的值为 200,则另一个跳过数据:
sed -n '/.*\"map\":\"200\".*/!p' new.log > map.log
如何将这两者合二为一?
UPD:我现在已经接受了答案,但我想知道为什么
sed -n 's/.*\({\"datalist\".*\"map\":\"\(?!200\)\".*}\).*/\1/p' full.log > new.log
不工作