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

如何使用sed结合正则匹配组替换import语句的路径前缀

sed 批量替换import路径前缀操作方法

你不需要硬套原来写的固定层级正则,用捕获组保留目标文件名的写法更通用,不管import路径是几级目录都能正常替换。

直接可用的命令

  • 预览替换效果(不改动原文件):
sed 's|import "[a-zA-Z/]*\([a-zA-Z]\+\.ccc\)"|import "ooooo/\1"|g' 你的目标文件路径
  • 确认效果没问题后,直接修改原文件:
sed -i 's|import "[a-zA-Z/]*\([a-zA-Z]\+\.ccc\)"|import "ooooo/\1"|g' 你的目标文件路径

逻辑说明

  • 这里选用|作为sed替换的分隔符,不用对路径里的/做额外转义,写法更简洁不容易出错
  • 正则里的[a-zA-Z/]*会匹配引号内、文件名之前的所有多级路径前缀,不管是1级、2级还是更多级目录都能覆盖,比你原来写的固定匹配1/2级目录的正则兼容性更好
  • 括号包裹的\([a-zA-Z]\+\.ccc\)是捕获组,会自动抓取末尾的.ccc格式文件名,替换时用\1引用捕获到的文件名,拼到ooooo/前缀后即可
  • 所有非import语句的行(比如示例里的BLBLBL这类普通内容)不会被正则匹配,会原样保留

替换效果

对你提供的示例文件执行命令后,输出结果完全符合要求:

import "ooooo/bbbb.ccc";
import "ooooo/eeee.ccc";
import "ooooo/hhhh.ccc";

BLBLBL
BL2BL2BL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:57:22