当我卷曲到我的网址时,我会收到以下格式的JSON:
{"busyexecutors":0,
"computers":[{"displayName":"Master","actions":[{},{},{}]},
{"displayName":"137.0.01","actions":[{},{},{}]}]}
我想只提取displayName,它不等于Master。所以输出应该是" 137.0.0.1"。
让我知道是否可以在没有像jq。
这样的外部工具的情况下实现这一点答案 0 :(得分:2)
在使用JSON时,使用正确的JSON解析器 的原因很少。
jq -r '.computers | .[].displayName | select(.!="Master")' <<EOF
{"busyexecutors":0,
"computers":[{"displayName":"Master","actions":[{},{},{}]},
{"displayName":"137.0.01","actions":[{},{},{}]}]}
EOF
答案 1 :(得分:1)
正如已经指出的,这是一个坏主意。但是,如果你坚持这样做:
#!/usr/bin/awk -f
{
split($0, z, /"/)
for (y in z)
if (z[y] == "displayName")
if (z[y+2] != "Master")
print z[y+2]
}