次のように、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の場合は、適切なパーサーを使用する必要があります。