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

AWK正则匹配替换:将.UTT前的/替换为|技术求助

解决路径中/替换为|的正则方案

看来你卡在了针对.utt/.UTT结尾的路径替换斜杠的问题上,我来帮你梳理几种可行的方案,分不同工具场景,你可以按需选用:

先明确核心思路

我们需要先精准定位行中所有以.utt或.UTT结尾的文件路径段,然后只在这些段内把/替换成|,不会影响行内其他内容。

方案1:用 sed 命令(Linux/macOS 终端)

如果习惯用终端处理文件,这个命令可以直接完成批量替换:

sed -E 's/([\/\w\-. ]+\.utt)/echo "\1" | tr "\/" "|" /geI' input_file.txt > output_file.txt
  • 细节解释:
    • -E:启用扩展正则表达式
    • I:不区分大小写,会同时匹配.utt和.UTT
    • e:把替换后的内容作为shell命令执行,这里用tr把匹配到的路径里的/转成|
    • 正则[\/\w\-. ]+:允许路径包含空格、下划线、减号等常见字符,如果你的路径有特殊符号,可以自行添加到括号里

方案2:Python 脚本(适合复杂场景)

如果需要更灵活的处理(比如后续还要加其他逻辑),用Python脚本更可控:

import re

def process_line(line):
    # 匹配所有以.utt/UTT结尾的路径,支持包含空格的路径
    utt_pattern = re.compile(r'([\/\w\-. ]+\.utt)', re.IGNORECASE)
    
    # 对每个匹配到的路径替换/为|
    def replace_slash(match_obj):
        return match_obj.group(0).replace('/', '|')
    
    return utt_pattern.sub(replace_slash, line)

# 读取原文件并处理
with open("your_input_file.txt", "r", encoding="utf-8") as f_in:
    with open("your_output_file.txt", "w", encoding="utf-8") as f_out:
        for line in f_in:
            f_out.write(process_line(line))

方案3:VS Code 可视化替换(小白友好)

如果不想写代码/命令,用VS Code的查找替换功能就能搞定:

  1. 打开目标文件,按下Ctrl+H(Windows/Linux)或Cmd+H(Mac)打开替换面板
  2. 点击面板右上角的「正则表达式」按钮(看起来像.*)
  3. 查找框输入:([\/\w\-. ]+\.utt)
  4. 替换框输入:${/\//|/g:$0}
  5. (可选)如果不需要区分大小写,取消勾选「匹配大小写」按钮
  6. 点击「替换全部」即可完成所有替换

注意事项

如果你的路径里有其他特殊字符(比如@、#),只需要把这些字符添加到正则的字符集合里(比如把[\/\w\-. ]改成[\/\w\-. @#])就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:05:24