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

Vim操作:如何快速将每行第二次出现的string1替换为string2

首选Vim操作方案

直接用Vim内置替换命令即可实现需求,操作极短:

  • 全文件批量替换所有行的第2次string1匹配为string2,普通模式下直接输入:
    :%s/string1/string2/2
    如果需要替换前逐一确认修改,末尾加c参数即可:
    :%s/string1/string2/2c

命令说明:替换命令末尾的数字标记表示仅对每行的第N次匹配生效,适合无特殊字符的普通匹配场景。
如果匹配内容有特殊正则字符,推荐用带捕获组的写法更稳定:
:%s/\v(string1.*)string1/\1string2/
该写法用\v开启正则简化模式,先捕获第一次string1及之后的内容,替换时保留捕获内容,仅将第二个string1替换为目标值。

终端命令可选方案

如果不需要打开编辑器操作,可直接用终端命令处理文件:

  • sed方案(直接修改原文件):
    sed -i 's/string1/string2/2' 你的文件名
  • awk方案(不修改原文件,输出到新文件):
    awk '{sub(/string1/,"tmp");sub(/string1/,"string2");sub(/tmp/,"string1")}1' 原文件名 > 新文件名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:54:03