Разбор ответов от Консул в Баш

Я использую bash, чтобы получить значение от Consul, у меня работает вызов API, но, похоже, не удается разобрать анализ. Я пробовал regex, а также jq, но ни один из них не работает. Ниже приведены результаты вызова API, которые мне нужно проанализировать. Я пытаюсь получить MTA3NDE5 от него.

Как я могу получить это значение из того, что возвращает вызов API?

[{"LockIndex":0,"Key":"syncID/master","Flags":0,"Value":"MTA3NDE5","CreateIndex":1951278,"ModifyIndex":1952289}]

2 ответа

Решение

Вы должны быть в состоянии использовать что-то простое, как jq -r '.[]."Value"'

Ex.

$ echo '[{"LockIndex":0,"Key":"syncID/master","Flags":0,"Value":"MTA3NDE5","CreateIndex":1951278,"ModifyIndex":1952289}]' | 
  jq -r '.[]."Value"'
MTA3NDE5

Вот один из способов:

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 '"'
Другие вопросы по тегам