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

VIM如何批量删除文件每一行内指定范围的字符

方案1:按指定字符位置精准删除

直接执行如下Vim命令即可实现需求:

:%s/^\(.\{20}\).\{10}/\1/

命令说明:

  • % 代表对文件所有行执行替换操作
  • ^\(.\{20}\) 匹配每行开头的前20个字符,存入分组1中
  • .\{10} 匹配接下来的10个字符,也就是你要求删除的第21到30位字符
  • \1 把匹配到的内容替换成分组1的内容,相当于只保留前20位,自动删除后续10位字符

如果需要逐行确认再替换,避免误操作,可以在命令末尾加c参数:

:%s/^\(.\{20}\).\{10}/\1/c

方案2:按内容特征匹配删除(更灵活)

针对你当前删除秒后毫秒与时区后缀的场景,还可以用内容匹配的方式实现,不受字符位置偏移影响:

:%s/\d\zs\.[^"]*//

命令说明:

  • \d 匹配秒数的最后一位数字
  • \zs 标记替换操作的起始位置,也就是从后面的小数点开始才是要删除的内容
  • \.[^"]* 匹配小数点后所有直到双引号前的字符
  • 替换为空即可完成清理,和你要求的效果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:45:05