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

如何用Bash将{任务编号}替换为带链接的Markdown格式?

嘿,这个需求用Bash里的sed命令就能轻松搞定!下面给你详细的实现方法和解释:

核心命令实现

直接用sed的正则捕获功能,就能把{任务编号}格式替换成你想要的链接格式,命令如下:

# 单条文本替换示例
echo 'TASK {5662}: Task definition' | sed -E 's/\{([0-9]{4,})\}/[\1](https://somelink.com/task/\1)/g'

执行这条命令后,输出结果就是:

TASK [5662](https://somelink.com/task/5662): Task definition

命令细节解释

让我拆解一下这个替换规则,帮你理解每部分的作用:

  • -E:启用扩展正则表达式模式,这样我们不用对括号等特殊字符额外转义,写起来更清爽
  • s/原模式/替换模式/g:这是sed的替换语法,g表示全局替换(一行里多个匹配项都会被处理)
    • \{([0-9]{4,})\}:匹配目标格式
      • \{ 和 \}:匹配左右大括号(因为大括号在正则里是特殊字符,所以要加反斜杠转义)
      • ([0-9]{4,}):这是一个捕获组,专门匹配4位及以上的数字([0-9]代表数字,{4,}表示至少出现4次)
    • [\1](https://somelink.com/task/\1):替换后的内容
      • \1:引用刚才捕获组里的任务编号,相当于把匹配到的数字直接代入到链接里

进阶用法:处理多行文本或文件

如果要处理多行文本,或者直接修改文件内容,也很方便:

1. 处理多行文本

cat << EOF | sed -E 's/\{([0-9]{4,})\}/[\1](https://somelink.com/task/\1)/g'
TASK {5662}: Task definition
BUG {12345}: Fix login issue
FEATURE {987654}: Add dark mode
EOF

执行后会输出:

TASK [5662](https://somelink.com/task/5662): Task definition
BUG [12345](https://somelink.com/task/12345): Fix login issue
FEATURE [987654](https://somelink.com/task/987654): Add dark mode

2. 修改文件内容

如果要直接修改input.txt文件里的内容,可以用-i参数(会直接覆盖原文件):

sed -i -E 's/\{([0-9]{4,})\}/[\1](https://somelink.com/task/\1)/g' input.txt

如果你想备份原文件再修改,可以加.bak后缀,这样会生成一个input.txt.bak的备份文件:

sed -i.bak -E 's/\{([0-9]{4,})\}/[\1](https://somelink.com/task/\1)/g' input.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:56:34