我正在使用 bash 从 Consul 获取一个值,我的 API 调用可以工作,但似乎无法解析。我尝试过 regex 和 jq,但似乎都不起作用。下面是我需要解析的 API 调用的结果。我正试图从中获取MTA3NDE5
。
我如何从 API 调用返回的内容中获取该值?
[{"LockIndex":0,"Key":"syncID/master","Flags":0,"Value":"MTA3NDE5","CreateIndex":1951278,"ModifyIndex":1952289}]
答案1
你应该能够使用一些简单的东西,例如jq -r '.[]."Value"'
前任。
$ echo '[{"LockIndex":0,"Key":"syncID/master","Flags":0,"Value":"MTA3NDE5","CreateIndex":1951278,"ModifyIndex":1952289}]' |
jq -r '.[]."Value"'
MTA3NDE5
答案2
以下是一种方法:
walt@bat:~(0)$ echo '[{"LockIndex":0,"Key":"syncID/master","Flags":0,"Value":"MTA3NDE5","CreateIndex":1951278,"ModifyIndex":1952289}]' | \
grep -E -o '"Value":"[^"]*"' | cut -d: -f2 | tr -d '"'