这是来自服务器的我的json响应。这个响应我保存在一个名为TESTDEMO的变量中。
{
"objects":[
{
"meta":{
"type":"test-folder",
"@href":"{HOST_URL}/TsetRESTServices/objects/test-folder/0F071CE4-790D11E3-AAC0-005056A5408D",
"name":"demo"
},
"meta":{
"type":"test-folder",
"@href":"{HOST_URL}/TsetRESTServices/objects/test-folder/0F072CE4-190A11E3-AAC0-00AA56A5408K",
"name":"folder "
}
}]
}
想要提取文件夹0F071CE4-790D11E3-AAC0-005056A5408D
的ID "name":"demo"
。
需要帮助。
答案 0 :(得分:1)
试试这个:
根据名称将您的JSON重定向到sed命令和grep:demo。
echo $TESTDEMO | sed 's/{/\n{/g' | grep '"name":"demo"' | cut -d',' -f2 | cut -d'/' -f 7 | cut -d'}' -f 1 | cut -d '"' -f 1
希望这会有所帮助。
答案 1 :(得分:0)
喜欢这个吗?
awk -F"[/\"]" '/"name":"demo"/ {print $5}' RS="}" <<< "$variable"
0F071CE4-790D11E3-AAC0-005056A5408D
答案 2 :(得分:0)
sed -n '/"type":"test-folder"/,/"name":"demo"/ {s/[[:blank:]]*"@href":"{HOST_URL}//;s/",$//p}' <<< "$TESTDEMO"
将type
块移至name
并打印行havin @href并在删除后删除