如何在JSON文件中grep出enabled为true的png代码块
解决方案
方法1:用grep上下文匹配(依赖JSON排版)
如果想继续用grep,通过上下文参数获取对应的块名称行:
grep -rB 1 '"enabled":\s*true' *.json
-B 1表示显示匹配行的前1行,刚好能拿到对应的块名称(比如"png": {)。如果块名称和enabled行之间有空行,可调整-B后的数字(比如-B 2)。
方法2:用jq精准解析(推荐,不受排版影响)
jq是专门处理JSON的工具,能准确识别结构,避免正则匹配的局限性:
- 仅输出启用的块名称:
jq 'to_entries[] | select(.value.enabled == true) | .key' *.json
- 输出完整的启用块内容:
jq 'to_entries[] | select(.value.enabled == true)' *.json
内容的提问来源于stack exchange,提问作者Ralphae
相关产品推荐
相关产品推荐

