gpt4 book ai didi

shell - 如何使用grep从Json中检索单个值?

转载 作者:行者123 更新时间:2023-12-04 13:09:18 25 4
gpt4 key购买 nike

如何从给定的 json 中提取单个值?

{
"Vpc": {
"InstanceTenancy": "default",
"State": "pending",
"VpcId": "vpc-123",
"CidrBlock": "10.0.0.0/16",
"DhcpOptionsId": "dopt-123"
}
}

试过这个,但没有运气:
grep -e '(?<="VpcId": ")[^"]*'

最佳答案

您可能想要 -Po ,它适用于您的正则表达式:

$ grep -oP '(?<="VpcId": ")[^"]*' infile
vpc-123

如果 GNU grep 用它的 -P选项不可用,我们不能使用环视,不得不求助于例如使用 grep 两次:
$ grep -o '"VpcId": "[^"]*' infile | grep -o '[^"]*$'
vpc-123

第一个提取直到并排除结束引号,第二个从行尾搜索非引号。

但是,如前所述,您最好正确解析您的 JSON。除了 jq在另一个答案中提到,我知道
  • Jshon
  • JSON.sh

  • jq 解决方案就像这样简单:
    $ jq '.Vpc.VpcId' infile 
    "vpc-123"

    或者,获取原始输出而不是 JSON:
    $ jq -r '.Vpc.VpcId' infile 
    vpc-123

    关于shell - 如何使用grep从Json中检索单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073695/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com