{
"assignedTo": [
"Daniel Raisor",
"Dalton Leslie",
"Logan Petro"
]
}
我想提取Daniel Raisor Dalton Leslie和Logan Petro并将这些分配给一个单独的变量,如assignedTo = Daniel Raisor,Dalton Leslie,Logan Petro 我的unix也不支持jq,我需要使用grep或sed命令
答案 0 :(得分:1)
使用适当的JSON解析器来解析JSON。即使你没有jq
,Python解释器也包含一个非常好的解释器,以下示例脚本使用它:
#!/bin/ksh
# note: this was tested with ksh93u+ 2012-08-01
# to use with Python 3 rather than Python 2, replace "pipes" with "shlex"
json='{"assignedTo": ["Daniel \"The Man\" Raisor","Dalton Leslie","Logan Petro"]}'
getEntries() {
python -c '
import json, sys, pipes
content = json.load(sys.stdin)
for name, values in content.iteritems():
print("%s=%s" % (pipes.quote(name), pipes.quote(",".join(values))))
'
}
eval "$(getEntries <<<"$json")"
echo "$assignedTo"
...正确发出以下输出:
Daniel "The Man" Raisor,Dalton Leslie,Logan Petro
答案 1 :(得分:-1)
如果您可以保证格式如上,请尝试:
sed "s/^ *//" input.json | sed "s/: /=/" | tr -d '\n[]"{}'
上面删除了每一行的所有前导空格,用等号替换了冒号,然后删除了无关的字符。