如何使用SED从JSON文本中提取requestId对应的字段值
sed提取JSON中requestId值的实现方案
你可以直接使用sed的正则替换+捕获功能完成需求,操作如下:
执行命令
如果是对本地JSON文件操作,执行以下命令:
sed -n 's/.*"requestId": "\([^"]*\)".*/\1/p' 你的JSON文件路径
如果是通过管道传递JSON内容,示例如下:
echo '{ "requestId": "aee4f0cd-4b15-4df5-ab6b-62874963105a" }' | sed -n 's/.*"requestId": "\([^"]*\)".*/\1/p'
执行后会直接输出目标值:aee4f0cd-4b15-4df5-ab6b-62874963105a
参数说明
-n:关闭sed默认的全量输出逻辑,仅输出替换成功的行s/A/B/p是sed的替换语法,意为把匹配到的A内容替换为B,末尾的p表示替换完成后打印该行- 正则部分的
\([^"]*\)是sed的捕获组语法,会匹配双引号之间的requestId值,后续用\1就能引用捕获到的内容
注意:该方案适配你给出的单行列JSON场景,如果是格式化的多行JSON,可先通过
tr -d '\n'把内容合并为单行再传递给sed处理即可。
内容的提问来源于stack exchange,提问作者Sriram Chowdary
相关产品推荐
相关产品推荐

