使用grep或regex提取Json Key值

问题描述 投票:-1回答:2

我需要在下面的json消息中提取请求ID的值

{"requestId":"2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1"} 

我的操作系统中没有JQ命令。有没有其他方法可以做到,可能使用grep正则表达式或其他?

{"requestId":"2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1"} 

我需要提取值2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1

json linux
2个回答
1
投票

第一个问题

#!/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

2
投票

由于PowerShell被标记,如果它真的是整个JSON对象,那么:

('{"requestId":"2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1"}' | ConvertFrom-Json).requestId
© www.soinside.com 2019 - 2024. All rights reserved.