如何使用Shell脚本匹配路径模式并在中间插入指定文本
实现方案
直接使用Bash内置的参数扩展功能即可完成插入操作,无需调用额外外部命令,性能最优。
现有变量定义
#!/bin/bash name='agent_name-2' dirPath='/var/azp/1/s'
推荐插入逻辑
该写法通过固定前缀匹配+移除再拼接的方式实现,可读性高、适配性强:
# 定义插入位置的固定前缀 fixed_prefix="/var/azp" # 移除dirPath开头的固定前缀,将name插入到前缀和剩余路径中间 result="${fixed_prefix}/${name}${dirPath#${fixed_prefix}}"
结果验证
执行命令 echo $result 可得到输出 \/var/azp/agent_name-2/1/s,完全符合预期。
可选简化写法
如果固定前缀不会频繁变更,可以直接用字符串替换语法快速实现:
result="${dirPath/\/var\/azp/\/var\/azp\/${name}}"
内容的提问来源于stack exchange,提问作者Datadog Learning
相关产品推荐
相关产品推荐

