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

如何用grep与正则表达式实现文本重排?(Vim环境)

文本转换实现方案

Vim编辑器内操作

直接在Vim中使用正则替换命令即可完成转换:

  1. 打开目标文件后,进入命令模式(按Esc键)
  2. 执行以下替换命令:
:%s/\(name\)_\(\d\+\)_\(extratext\)/\1_\3_\2/g
  • 正则说明:
    • \(name\) 捕获字符串开头的name部分
    • \(\d\+\) 捕获中间的数字序列(支持多位数)
    • \(extratext\) 捕获末尾的extratext部分
    • 替换后的\1_\3_\2将捕获的三部分重新排列,把数字移到最后

命令行(grep+sed)方式

grep本身仅用于匹配筛选文本,需配合sed完成修改:

# 从input.txt中筛选符合格式的行并转换,输出到output.txt
grep -E 'name_[0-9]+_extratext' input.txt | sed -E 's/(name)_([0-9]+)_(extratext)/\1_\3_\2/' > output.txt
  • grep -E 启用扩展正则,筛选出目标格式的行
  • sed -E 用扩展正则完成替换逻辑,和Vim中的替换规则一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:55:23