check value of json response in bash script -
{"running": 1, "finished": 3, "node_name": "l-2.local", "pending": 0, "status": "ok"} i'm trying parse response check value of "running" bash script. know there's libraries this, reason jq library wouldn't install, , prefer not install it, need 1 command. i'd use python instead.
i tried using command answer, on response
| grep -po '"running":"\k[^,]*'
but failed due "."
bash: {"running": 0, "finished": 0, "node_name": "l-2: command not found
is there way check value of "running" grep, , not have error?
you may use sed remove not need , capture , keep need using capturing group , backreference:
s='{"running": 1, "finished": 3, "node_name": "l-2.local", "pending": 0, "status": "ok"}' echo $s | sed 's/.*"running":[[:space:]]*\([0-9]*\).*/\1/' see online demo.
pattern details
.*- 0+ chars many possible"running":- literal substring[[:space:]]*- 0+ whitespaces\([0-9]*\)- capturing group (note escapes, necessary since pattern posix bre compliant) matching 0 or more digits.*- rest of line.
the \1 backreference group 1 value.
Comments
Post a Comment