如何使用shell脚本从json字符串中grep特定字段值

如何使用shell脚本从json字符串中grep特定字段值,json,bash,shell,Json,Bash,Shell,下面是我在文件中可用的JSON字符串,我需要从中提取shell脚本中的status的值 预期输出:status=success response.json {"eventDate":null,"dateProccessed":null,"fileName":null,"status":"success"} 请告诉我,如果您需要任何信息,请查看jq。这是一个非常方便的json解析器 如果只想提取状态,可以执行以下操作: jq -r '.status' response.json # outpu

下面是我在文件中可用的JSON字符串,我需要从中提取shell脚本中的
status
的值

预期输出:
status=success

response.json

{"eventDate":null,"dateProccessed":null,"fileName":null,"status":"success"}

请告诉我,如果您需要任何信息,请查看
jq
。这是一个非常方便的json解析器

如果只想提取状态,可以执行以下操作:

jq -r '.status' response.json

# output
success
您还可以格式化输出,以跟踪所需的结果

jq -r '"status=\(.status)"' response.json

# output
status=success
您可以尝试以下方法:

sed -n 's|.*"status":"\([^"]*\)".*|status=\1|p' response.json

你好,谢谢你的回复。我尝试了这个选项,我们的unix风格不支持jq命令。还有其他方法吗?这如何产生预期的输出
status=success
?@hek2mgl\1将捕获
success
。这不是一个出色的解决方案,但它会起作用。我忽略了输入json是一个单行文档
sed
在这里并不出色,但您是对的,在这种情况下它会起作用。