gpt4 book ai didi

json - 在 jq 中使用 curl/bash 命令

转载 作者:行者123 更新时间:2023-11-29 09:41:52 24 4
gpt4 key购买 nike

我正在尝试使用 bash 脚本在重定向后获取 URL 列表。比如说,google.com 被重定向到 http://www.google.com,状态为 301。我尝试过的是:

json='[{"url":"google.com"},{"url":"microsoft.com"}]'

echo "$json" | jq -r '.[].url' | while read line; do
curl -LSs -o /dev/null -w %{url_effective} $line 2>/dev/null
done

那么,我们是否可以在jq中使用curl这样的命令来处理JSON对象。我想将生成的 URL 添加到现有的 JSON 结构中,例如:

[
{
"url": "google.com",
"redirection": "http://www.google.com"
},
{
"url": "microsoft.com",
"redirection": "https://www.microsoft.com"
}
]

提前谢谢你..!

最佳答案

curl 能够在单个进程中进行多次传输,它还可以 read command line arguments from a file or stdin ,因此,您根本不需要循环,只需将该 JSON 放入文件中并运行:

jq -r '"-o /dev/null\nurl = \(.[].url)"' file |
curl -sSLK- -w'%{url_effective}\n' |
jq -R 'fromjson | map(. + {redirection: input})' file -

这样整个任务只会生成 3 个进程,而不是 n + 2,其中 n 是 URL 的数量。

关于json - 在 jq 中使用 curl/bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57689809/

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