从输出构建 URL

从输出构建 URL

我正在查询 API 并尝试为下一个查询构建 URL,但我很迷失。我使用第一个命令得到了我正在寻找的输出,输出如下所示:

8498fdsfh9238yt8hfsjhf238
38fhj38gjkdf983hgkdhg939g
j93g930jg92jy0odi03igo3t9

我有大约 250 个这样的结果。我需要将它们附加到下一个查询的 URL 末尾,因此我的 URL 需要如下所示

https://api.example.com/ids=8498fdsfh9238yt8hfsjhf238&ids=38fhj38gjkdf983hgkdhg939g&ids=j93g930jg92jy0odi03igo3t9

我真的不知道如何做到这一点,任何可以为我指明正确方向的东西都将不胜感激。

答案1

awk '{ line=(line?line"&":"") "ids="$0 }
END{ print "https://api.example.com/"line }' infile

答案2

您可以使用普通 shell 来做到这一点:

p=
for i in aa bb cc; do
  p="$p${p:+&}ids=$i"
done
url="https://api.example.com/?$p"

当然你也可以把它写在一行上。这会构建参数并在不为空时$p添加分隔符。&$p

如果您的参数在文件中infile,您可以通过命令替换来获取它们。

p=
for i in $(cat infile); do
  p="$p${p:+&}ids=$i"
done
url="https://api.example.com/?$p"

相关内容