我需要在下面的json消息中提取请求ID的值
{"requestId":"2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1"}
我的操作系统中没有JQ命令。有没有其他方法可以做到,可能使用grep正则表达式或其他?
{"requestId":"2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1"}
我需要提取值2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1
第一个问题
#!/bin/bash
CURL_OUTPUT="{\"requestId\":\"2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1\"}"
echo $CURL_OUTPUT | awk -F: '{print substr($2, 1, length($2)-1)}' | sed 's/"//g;'
第二个问题
#!/bin/bash
CURL_OUTPUT="{\"status\":\"INITIALIZED\",\"result\":\"NONE\"}"
status=$(echo $CURL_OUTPUT | awk -F, '{print $1}' | awk -F: '{print $2}' | sed 's/"//g')
result=$(echo $CURL_OUTPUT | awk -F, '{print $2}' | awk -F: '{print substr($2, 1, length($2)-1)}' | sed 's/"//g')
echo "CURL_OUTPUT: $CURL_OUTPUT"
echo "Status: $status"
echo "Result: $result"
CURL_OUTPUT: {"status":"INITIALIZED","result":"NONE"}
Status: INITIALIZED
Result: NONE
由于PowerShell被标记,如果它真的是整个JSON对象,那么:
('{"requestId":"2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1"}' | ConvertFrom-Json).requestId