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

在Vim/Nvim中匹配仅含正整数行的正则表达式及删除方法

嘿,这个需求超简单的!不管你用Vim/Nvim还是命令行的awk/sed,都有现成的方法,完全不用怕正则复杂,我给你一步步讲清楚:

用Vim/Nvim直接处理

打开你的文件后,按:进入命令行模式,输入下面这条命令回车就行:

:%g/^\d\+$/d

简单解释下每个部分:

  • % 表示作用于所有行
  • g/.../d 表示匹配到括号里内容的行就删除
  • ^\d\+$ 就是匹配仅包含正整数的行:^是行开头,\d\+代表一个或多个数字,$是行结尾,合起来就是整行只有数字的情况。

如果想更严谨(排除0,因为正整数从1开始),可以用:

:%g/^[1-9]\d*$/d
用awk命令处理

如果你习惯用命令行,awk一行就能搞定,直接输出过滤后的内容:

awk '!/^[1-9][0-9]*$/' 你的文件名.txt > 处理后的文件名.txt

这里!/.../表示不匹配这个模式的行才会被输出,^[1-9][0-9]*$就是严格的正整数(第一位是1-9,后面可以跟着任意数字或者没有),最后把结果重定向到新文件里。

用sed命令处理

sed也是个好选择,直接删除匹配的行:

# 先输出到终端预览效果
sed '/^[1-9][0-9]*$/d' 你的文件名.txt

# 直接修改原文件(谨慎使用,建议先备份文件)
# macOS系统需要加-i ''
sed -i '' '/^[1-9][0-9]*$/d' 你的文件名.txt
# Linux系统可以简化为
sed -i '/^[1-9][0-9]*$/d' 你的文件名.txt

同样,/^[1-9][0-9]*$/匹配仅正整数的行,d是删除操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:24:52