linux - 从 json 文件 curl 下载 json 文件

标签 linux shell curl

我有一个结构如下所示的 json 文件:

{
    url: "https://mysite.com/myjsonfile",
    version_number: 69,
}

这个 json 文件是从 mysite.com/myrootjsonfile 访问的

我想运行加载数据脚本来访问 mysite.com/myrootjsonfile 并使用 curl 从 url 字段加载 json 内容并将生成的内容保存到本地存储。

这是我目前的尝试。

curl -o assets/content.json 'https://mysite.com/myrootjsonfile' | grep -Po '(?<="url": ")[^"]*' 

不幸的是,不是保存 mysite.com/myjsonfile 中的内容,而是保存上面的内容:mysite.com/myrootjsonfile。谁能指出我可能做错了什么?牢记在一个全新的 curl 中。谢谢!

最佳答案

它正在保存 myrootjsonfile 中的内容,因为这就是您告诉 curl 要做的事情 - 将该文件保存到位置 assets/content.json ,然后 greping stdin,它是空的。您需要使用两个 curl 命令,一个用于下载根文件(并处理它以找到第二个的 URL),第二个用于下载您想要的实际内容。您可以为此使用命令替换:

my_url=$(curl https://mysite.com/myrootjsonfile | grep -Po '(?<=url: )[^,]*')
curl -o assets/content.json "$my_url"

我还更改了 grep 正则表达式 - 这个正则表达式匹配跟在“url:”之后的一串非逗号字符。

关于linux - 从 json 文件 curl 下载 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23496310/

相关文章:

regex - grep 正则表达式没有正确匹配零

python-3.x - 如何检索桌面快捷方式指向的 url?

python - 在简单的 shell 脚本中将文件作为参数传递的最简单方法是什么?

bash - 使用 sed 将 1234.0 更改为 1234 但保留 1.0234

http - curl 命令的等效 http 请求

linux - 转换MFC Doc/View到?

python - 如何限制 Python 进程的 I/O 消耗(可能使用 ionice)?

linux - 在 bash 脚本中连接 var 时出错

php - 请求的授权 token 是什么? (Youtube API)

php - PHP 中的 Sharepoint GetListItemChangesSinceToken CURL 请求