Skip to content

Instantly share code, notes, and snippets.

@JoshCheek
Last active December 16, 2017 00:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JoshCheek/3755a75820ce7fc9c0d8e08358992cb0 to your computer and use it in GitHub Desktop.
Save JoshCheek/3755a75820ce7fc9c0d8e08358992cb0 to your computer and use it in GitHub Desktop.
Parsing JSON from stdin
# jq is the swiss army knife of piping JSON :)
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | jq -r .NodeVersion
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | ruby -rjson -e 'puts JSON.parse($stdin.read).fetch("NodeVersion")'
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | ruby -054ne 'puts $1 if /NodeVersion":"([^"]*)/'
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | tr , \\n | sed -En '/NodeVersion/s/^.*"([[:digit:]].+)".*$/\1/p'
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | awk 'BEGIN { RS=","; FS="\"" } /NodeVersion/ {print $4}'
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | tr , \\n | grep NodeVersion | grep -Eo '\d+\.\d+\.\d+'
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | ruby -rjson -e'puts *JSON.load($<)' | sed -n '/NodeVersion/{n;p;}'
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | ruby -rjson -e'puts *JSON.load($<)' | sed '1,/NodeVersion/d' | head -1
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | tr ',:"{}' \\n | sed '1,/NodeVersion/d;/^$/d;q'
echo '{"abc":123,"NodeVersion":"7.10.1","xyz":456}' | tr -d '{}":' | tr , \\n | sed -n 's/NodeVersion//p'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment