如何解析echo json值?

时间:2019-06-07 02:35:00

标签: json shell kubernetes

我想解析一个值或将一个值转换为json格式。

我不知道该怎么做。

echo -e $(kubectl get pods "test-pod" -o jsonpath="{range .status.containerStatuses[*]}{.state}"\\n"{end}")
map[running:map[startedAt:2019-06-07T00:51:34Z]]
map[running:map[startedAt:2019-06-07T00:51:40Z]]
map[running:map[startedAt:2019-06-07T00:51:44Z]]
map[waiting:map[message:Back-off 5m0s restarting failed container=con4 pod=test-pod_test(609c90e4-88be-11e9-ba5f-fa163e9a67be) reason:CrashLoopBackOff]]

我只想获取所有容器的状态,例如[运行,正在运行,正在运行,正在等待]。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用jq中的keys[]jq命令来实现。以下是要使用的命令:

kubectl get pods kube-dns-86f4d74b45-khd4z -n kube-system -o json | jq -r '.status.containerStatuses[].state | keys[]'

上面的命令将为所有正在运行或等待中的容器或任何状态提供以下输出