Разбор ответов от Консул в Баш
Я использую 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 '"'