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

Vim正则多行搜索:如何查找31列含'9'的连续两行?

在Solaris vi中匹配连续两行第31列均为'9'的方法

针对你在Solaris vi里的需求,要找到连续两行第31列都是字符'9'的内容,关键是正确处理跨行匹配和列位置定位,以下是具体步骤和解释:

核心搜索模式

在Solaris的传统vi中,需要使用POSIX基本正则表达式(BRE),并且通过特殊方式表示换行符。正确的搜索模式如下:

^.\{30\}9\
^.\{30\}9

分步输入方法

  1. 按/进入搜索模式;
  2. 输入^.\{30\}9:
    • ^匹配行首;
    • .\{30\}表示任意30个字符(BRE中必须用\{n\}表示重复次数,不能直接用{30});
    • 9就是你要找的第31列的字符;
  3. 接下来匹配换行符:输入\,然后按Ctrl+V再按Enter(这一步会插入一个带反斜杠的换行符,是vi中搜索跨行内容的标准方式);
  4. 最后输入^.\{30\}9,完成整个模式;
  5. 按Enter执行搜索,就能定位到连续两行第31列都是'9'的内容(比如你示例中的第5、6行)。

常见问题说明

  • 如果你之前尝试失败,大概率是这两个原因:
    1. 用了扩展正则的{30}而非BRE要求的\{30\},导致量词不生效;
    2. 用了\n表示换行,但在Solaris vi的搜索模式中,\n不代表换行符,必须用\+实际换行(通过Ctrl+V Enter插入)才能匹配跨行内容。

辅助验证技巧

可以先执行:set number显示行号,:set list显示所有不可见字符(包括换行符、空格),这样能更直观地确认第31列的位置是否正确,避免列数计数错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:02:43