gpt4 book ai didi

linux - 如何在不使用json工具和JQ工具的情况下在shell脚本中读取和解析JSON

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:58 25 4
gpt4 key购买 nike

我正在尝试通过rest api从artifactory下载artifacts(.war文件)。我正在从 Artifactory 获取 JSON 格式的文件夹名称,我想通过 shell 脚本将其获取到一个变量中,但如果不使用 JSON 工具和 JQ 工具,我就无法做到这一点,因为我的服务器不包含这两者。有人可以帮我解决这些问题吗?

我尝试了以下命令

$ databasename=`cat process.json | json select '.uri'`
$ echo $databasename

$ databasename=`jq '.uri' process.json`

由于我没有JQ和JSON工具,所以失败了。

$ curl -u User:API Key https://artifactory.es.abc.com/artifactory/api/storage/abc/com/xyz/aa/bb/xx/?list&listFolders=1&includeRootPath=0  > process.json
$ databasename=`cat process.json | json select '.uri'`
$ echo $databasename

最佳答案

您可以使用grepsed来获取您需要的数据。我本想添加一个完整的示例,但 URL 不正确,并且您没有提供 json(的一部分)。

$ cat tmp.json
{
"json": {
"array": [ 1, 2, 3 ]
},
"uri": "derp"
}
$ grep 'uri' tmp.json | sed -r 's/^[^:]*:(.*)$/\1/'
"derp"

对于单行数据,您可以使用以下命令:

echo '{ "uri" : "/abc", "folder" : true },' | grep -Eo '"uri"[^,]*' | grep -Eo '[^:]*$'

第一个 grep 将搜索“uri”及其后的所有内容,直到找到逗号为止,第二个 grep 提取从冒号到字符串末尾的所有内容。

关于linux - 如何在不使用json工具和JQ工具的情况下在shell脚本中读取和解析JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57971193/

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