【发布时间】:2017-02-07 00:26:34
【问题描述】:
以下是文件中可用的 JSON 字符串,我需要从中提取 shell 脚本中 status 的值。
预期输出:status=success
response.json
{"eventDate":null,"dateProccessed":null,"fileName":null,"status":"success"}
如果您需要任何信息,请告诉我
【问题讨论】:
以下是文件中可用的 JSON 字符串,我需要从中提取 shell 脚本中 status 的值。
预期输出:status=success
response.json
{"eventDate":null,"dateProccessed":null,"fileName":null,"status":"success"}
如果您需要任何信息,请告诉我
【问题讨论】:
你可以试试sed:
sed -n 's|.*"status":"\([^"]*\)".*|status=\1|p' response.json
【讨论】:
status=success?
success。这不是一个绝妙的解决方案,但它会起作用。
sed 在这里并不出色,但你是对的,它适用于这种情况。
查看jq。这是一个非常方便的 json 解析器。
如果您只想提取状态,可以执行以下操作:
jq -r '.status' response.json
# output
success
您也可以格式化输出以遵循您想要的结果。
jq -r '"status=\(.status)"' response.json
# output
status=success
【讨论】: