【发布时间】:2021-02-13 04:29:15
【问题描述】:
如果链接头包含 rel=next.. 则查找下一个链接 获取链接标题可能会导致不同的字符串。我需要找到下一个链接。 例如
Link: <http://mygithub.com/api/v3/organizations/20/repos?page=1>; rel=prev, <http://mygithub.com/api/v3/organizations/20/repos?page=3>; rel=next, <http://mygithub.com/api/v3/organizations/20/repos?page=4>; rel=last, <http://mygithub.com/api/v3/organizations/20/repos?page=1>;
应该是http://mygithub.com/api/v3/organizations/20/repos?page=3
Link: <http://mygithub.com/api/v3/organizations/4/repos?page=2>; rel="next", <http://mygithub.com/api/v3/organizations/4/repos?page=2>; rel="last"
应该是http://mygithub.com/api/v3/organizations/4/repos?page=2
玩过 sed 和参数扩展 - 没那么有经验,所以卡住了 :)
【问题讨论】:
-
“Shell”意味着您需要与
/bin/sh兼容,或者它是否在 bash、ksh、zsh 或其他扩展 shell 中运行?如果你在一个支持本机正则表达式的 shell 中,你应该考虑使用它。 -
在extract substring using regexp in plain bash 中使用
BASH_REMATCH查看答案。当您在每次调用时仅使用一行输入来运行sed时,通常最好避免使用它——启动每个副本都需要很长时间,即使它在运行后非常快。 -
@shellter 谢谢。一个问题..如何将值分配给shell脚本中的变量。例如我在变量名称 nextReposLink
echo $nextReposLink中有带有链接的字符串。 - 使用我的 github 链接打印字符串我想将命令的结果保存在一个新变量中...$nextReposLink | awk '{for (i=0; i<=NF; i++){if ($i == "rel=next,"){print $(i-1);exit}}}' | sed -e 's/</ /' -e 's/>;/ /'类似的东西,但这给了我一个“错误的替换”x="${echo $nextReposLink | awk '{for (i=0; i<=NF; i++){if ($i == \"rel=next,\"){print $(i-1);exit}}}'}" -
@shellter 谢谢...你想回答这个问题吗? :)
标签: shell