当前位置:  开发笔记 > 编程语言 > 正文

有没有办法让jq在遇到错误后继续运行?

如何解决《有没有办法让jq在遇到错误后继续运行?》经验,为你挑选了1个好方法。

我正在使用jq解析日志数据,偶尔日志中包含格式错误的内容(无效的json),当这种情况发生时,jq会在此时放弃处理。

有没有一种方法可以让jq在通过stderr报告问题的同时继续处理可能的问题?

我知道,如果JSON中包含换行符,则jq如果从下一行开始可能会遇到麻烦,但是在这种情况下,您最终还是会发现合法的JSON消息的开头并可以继续处理。



1> Kyle James W..:

使用jq-1.5,我可以执行以下操作:

# Include All Errors in output as a string
cat example.log | jq -R '. as $raw | try fromjson catch $raw'

# Skip all errors and keep going
cat example.log | jq -R 'fromjson?'

非json的行将作为字符串输出,其他所有内容均为json


“ fromjson?”看起来很漂亮。很好的东西。
推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有