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

如何用sed/awk提取行号并替换特定格式的文件头行?

解决方案

用 sed 快速处理

直接用sed的正则替换就能搞定,命令如下:

sed -E 's/^\/\/.*\|([0-9]+)\|$/>\1/' 你的文件名.txt > 处理后文件名.txt

命令说明:

  • ^\/\/:锁定以//开头的行,避免误改其他行
  • .*\|([0-9]+)\|$:匹配行尾被|包裹的数字行号,括号里的[0-9]+就是要提取的行号,用\1反向引用这部分内容
  • >\1:把整行替换成>加上提取到的行号
  • -E:开启扩展正则模式,不用给括号加转义符,写法更简洁

用 awk 实现的另一种思路

如果觉得sed的正则看着绕,awk的分步处理更直观:

awk '/^\/\// { sub(/.*\|/, ">"); sub(/\|$/, ""); print; next } 1' 你的文件名.txt > 处理后文件名.txt

命令说明:

  • /^\/\//:只处理以//开头的头行
  • sub(/.*\|/, ">"):把从行首到最后一个|的所有内容替换成>
  • sub(/\|$/, ""):删掉行尾剩余的|
  • print:输出处理后的行
  • next:跳过后续逻辑,直接处理下一行
  • 1:对非头行的文本内容,直接原样输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:46:00