json - Bash grep JSON 响应
问题描述
这是文件中的 JSON 响应,即RGLogin.json
{"response":{"session_id":"2d48cc11ceabf28c9e92f4b677337dcd"},"response_status":200,"response_details":null}
下面的 grep 命令可以检索session_id
grep -m1 -oP '\s*"session_id"\s*:\s*"\K[^"]+' RGLogin.json
但是以下 grep 命令无法检索 response_status
grep -m1 -oP '\s*"response_status"\s*:\s*"\K[^"]+' RGLogin.json
解决方案
从意识形态上讲,解决此类问题的正确方法是使用了解数据格式的工具。即,如果它是 JSON,则必须使用 json-aware 工具(并且grep
应该将 line-aware 工具用于线性/非嵌套数据结构)。
例如,对于您的 JSON 结构,使用用于 JSON 的 walk-path unix 工具提取所需的信息jtc
::
bash $ <RGLogin.json jtc -w'[response_status]'
200
bash $
披露:我是jtc
工具的创造者
推荐阅读
- react-native - 在 React Native 中使用滚动视图作为有限列表是否合理?
- windows - 使用 ansible 将主机名附加到 Windows 远程服务器上文件中的所有行
- node.js - 如何使用 mailgun 和 nodejs 发送批量个性化电子邮件
- javascript - 如何使用反应钩子重置 setInterval 函数
- java - 为静态方法编写测试并在我将值传递给方法时获取 NullPointerException
- javascript - 如何使用 ng-model 将值传递给输入时间标签
- java - 如何在 Tomcat 中设置自定义垃圾收集器算法
- c# - 如何解决我的伤害计算如此之高?
- python - 找出字典的元素是否大于其他字典的元素
- swift - 如何在 3D 模型的折叠中打开阴影?