使用 Bash 解析 Consul 的响应

使用 Bash 解析 Consul 的响应

我正在使用 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 '"'

相关内容