使用标准实用程序从JSON对象提取值

问题描述 投票:0回答:2

我有一个txt文件,其内容如下。我正在尝试只保留12之类的值,[email protected]并删除方括号,引号,逗号和密钥。有人可以帮助我我所错过的内容或命令行出错吗?谢谢!

{
"id": 12,
"email": "[email protected]",
"first_name": "Rachel",
"last_name": "Howell",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/hebertialmeida/128.jpg",
}

现在,我可以输出的结果是

{
    12,
    "[email protected]",
    "Rachel",
    "Howell",
    "https://s3.amazonaws.com/uifaces/faces/twitter/hebertialmeida/128.jpg",
 }

我期望的是:

12
[email protected]
Rachel
Howell
https://s3.amazonaws.com/uifaces/faces/twitter/hebertialmeida/128.jpg

这是我的命令:

sed -e 's/[{]//g' | cut -d':' -f '2' test.txt
bash sed grep cut
2个回答
2
投票

使用,它将是:

jq -r '.[]' file

0
投票

如果您只想使用sed cut和grep,我建议您::>

sed "s/}//g;s/{//g;s/\"//g;s/,//g;s/\ //g" test.txt | cut -d":" -f2 | egrep "..*"

但是还有更有效的方法。

-

编辑:命令描述:

sed“ s /} // g; s / {// g; s / \” // g; s /,// g; s / \ // g“

->删除{}“,

cut -d“:” -f2

->仅占第二部分

egrep“ .. *”

->仅采用包含某些内容的行

© www.soinside.com 2019 - 2024. All rights reserved.