You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sed或awk从两个不同URL中提取指定路径段?

提取URL中指定片段的sed/awk解决方案

有两个URL变量:

normal="https://example.com/techsol-devops/slr-devops/-/pipelines/10112283"
dedicated="https://example.com/ims/techsol-devops/oa/oa-tenants/slr-devops/-/pipelines/3359684"

需要提取从https://之后到techsol-devops(包含该段)的内容,预期结果:

  • 对normal变量:example.com/techsol-devops
  • 对dedicated变量:example.com/ims/techsol-devops

你之前的sed命令因固定匹配两段路径,无法适配normal变量的结构,以下是可行的解决方案:

方案1:sed命令

使用非贪婪匹配的正则,同时适配两种URL结构:

sed -E 's|https://(.*?techsol-devops).*|\1|'

说明:

  • .*?是非贪婪模式,会匹配到第一次出现techsol-devops的位置,不管前面有几段路径,都能准确截取到目标结尾。
  • 测试验证:分别对两个变量执行该命令,都能得到符合预期的结果。

方案2:awk命令

如果偏好awk,可以通过分割字段的方式实现:

awk -F '/' '{res=""; for(i=3; i<=NF; i++) {res=res $i; if($i=="techsol-devops") break; res=res "/"} print res}'

说明:

  • 以/为分隔符切割URL,从第3个字段开始拼接内容;
  • 每拼接一个字段后检查是否为techsol-devops,是则停止拼接,最后输出结果。

内容的提问来源于stack exchange,提问作者bessey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:15:14