[英]Shell Script Json, Mac
這是我的代碼
function poke() {
json="curl -s -X GET http://pokeapi.co/api/v2/type/bug.json";
prop="half_damage_to"
temp=echo $json | sed 's/\\\\\//\//g' | sed 's/[{}]//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | sed 's/\"\:\"/\|/g' | sed 's/[\,]/ /g' | sed 's/\"//g' | grep -w $prop
echo ${temp##*|}
}
這里的問題是終端僅應打印出第一個JSON項目, half_damage_to:[name|fighting
,而應將其全部打印出來。 我如何確切地打印出half_damage_to
內的JSON字典中的所有項目?
使用extended-regexp(grep -E)
匹配half_damage_to
數組,然后使用awk
拆分half_damage_to
curl -s -X GET http://pokeapi.co/api/v2/type/bug.json | grep -oE '"half_damage_to":\[{.*?\}]' | awk 'BEGIN {FS="half_damage_to\":"} {print $2}'
輸出:
[
{
"name":"fighting",
"url":"http://pokeapi.co/api/v2/type/2.json"
},
{
"name":"flying",
"url":"http://pokeapi.co/api/v2/type/3.json"
},
{
"name":"poison",
"url":"http://pokeapi.co/api/v2/type/4.json"
},
{
"name":"ghost",
"url":"http://pokeapi.co/api/v2/type/8.json"
},
{
"name":"steel",
"url":"http://pokeapi.co/api/v2/type/9.json"
},
{
"name":"fire",
"url":"http://pokeapi.co/api/v2/type/10.json"
},
{
"name":"fairy",
"url":"http://pokeapi.co/api/v2/type/18.json"
}
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.