从json文件curl下载json文件

时间:2014-05-06 13:38:36

标签: 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。谁能指出我可能做错了什么?请记住一个全新的卷曲。谢谢!

2 个答案:

答案 0 :(得分:3)

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

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

我还更改了grep正则表达式 - 这个匹配了&#34; url:&#34;之后的一串非逗号字符。

答案 1 :(得分:1)

假设您希望将文件保存到assets/content.json,请注意标记区分大小写。

使用-o代替-O将输出重定向到assets/content.json