【发布时间】:2016-07-14 01:45:35
【问题描述】:
我正在尝试将 shell 脚本中的 JSON 对象解析为数组。
例如:[阿曼达,25 岁,http://mywebsite.com]
JSON 看起来像:
{
"name" : "Amanda",
"age" : "25",
"websiteurl" : "http://mywebsite.com"
}
我不想使用任何库,最好使用正则表达式或 grep。我已经完成了:
myfile.json | grep name
这给了我“名字”:“阿曼达”。我可以为文件中的每一行循环执行此操作,并将其添加到数组中,但我只需要右侧而不是整行。
【问题讨论】:
-
为此使用
jq。 -
查看[ this ] 问题并向我们展示您为解决此问题所做的一些努力。
-
这个
cat myfile.json | grep name | cut -d ':' -f2可能会有所帮助。 -
@sjsam:对链接问题的接受答案表明
jq使用良好,但使用了一种错误的方法将其输出读入 shell 数组(至少在撰写本文时 - 已发布评论)。 -
我假设你的意思不是
[Amanda, 25, http://mywebsite.com],而是( "Amanda" 25 "http://mywebsite.com");后者是 bash 的数组语法实际上的样子。 (或者,与declare -p array一样,也可以按如下方式打印:declare -a array='([0]="Amanda" [1]="25" [2]="http://mywebsite.com")')