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

求能替换除.yaml后缀外所有点为斜杠的POSIX正则表达式

符合POSIX标准的正则替换方案

方法1:使用POSIX BRE(sed默认模式)

通过两步替换实现需求:先全局替换所有.为/,再将末尾的/yaml还原为.yaml,命令如下:

echo "adsdasd.sdfdsfsdf.f43fvev.ASCSDF.sfgsdfssdf.yaml" | sed 's/\./\//g;s/\/yaml$/.yaml/'
  • 第一步s/\./\//g:将字符串中所有.替换为/
  • 第二步s/\/yaml$/.yaml/:匹配字符串末尾的/yaml,替换回.yaml

方法2:使用POSIX兼容的awk命令

利用分隔符拆分字符串,替换前半部分的.后再拼接后缀:

echo "adsdasd.sdfdsfsdf.f43fvev.ASCSDF.sfgsdfssdf.yaml" | awk -F'.yaml' '{gsub(/\./, "/", $1); print $1 ".yaml"}'
  • -F'.yaml':以.yaml作为分隔符,将字符串拆分为两部分
  • gsub(/\./, "/", $1):对第一部分内容全局替换.为/
  • print $1 ".yaml":将处理后的前半部分与.yaml后缀拼接输出

以上两种方案均完全符合POSIX标准,可在任何支持POSIX工具链的环境中运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:20:13