我正在尝试解析从curl请求返回的JSON,如下所示:
curl 'http://twitter.com/users/username.json' |
sed -e 's/[{}]/''/g' |
awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}'
上面将JSON分为多个字段,例如:
% ...
"geo_enabled":false
"friends_count":245
"profile_text_color":"000000"
"status":"in_reply_to_screen_name":null
"source":"web"
"truncated":false
"text":"My status"
"favorited":false
% ...
如何打印特定字段(以表示-v k=text
)?
grep -Po '"'"version"'"\s*:\s*"\K([^"]*)' package.json
。这可以轻松且仅通过grep解决任务,并且完美适用于简单的JSON。对于复杂的JSON,您应该使用适当的解析器。