如何使用sed命令删除URL中的/%(tenant_id)s后缀
错误原因
你之前使用的sed命令存在两处核心问题:
- 正则中的
[]语法是匹配括号内的任意单个字符,不是匹配完整连续字符串,无法匹配你要删除的完整片段 - 替换规则中额外加了空格,进一步导致无法匹配到目标内容
正确修改方案
将sed部分替换为如下内容即可:
sed 's#/%(tenant_id)s$##'
这里用#作为sed替换操作的分隔符,避免和URL中的/冲突需要额外转义,末尾加$限定只匹配字符串末尾的目标片段,避免误删URL中间的同名内容。
整段管道命令最终为:
curl ....... | jq -r .endpoints[].url | grep '8776/v3' | sed 's#/%(tenant_id)s$##'
效果验证
输入源URL:https://ext.an1.test.dev:8776/v3/%(tenant_id)s
执行后输出:https://ext.an1.test.dev:8776/v3
完全符合预期。
内容的提问来源于stack exchange,提问作者Kaber
相关产品推荐
相关产品推荐

