根据行上特定位置的字符删除行

时间:2013-05-22 21:14:59

标签: vim position character

我正在处理一个大文本文件,需要能够根据该行上第25个字符的值删除行,即它是否等于H,K或Z.这是否可行,或者只是通过匹配其中一个字母并运行3个命令或(甚至更好)所有3合一命令?任何帮助非常感谢!

2 个答案:

答案 0 :(得分:3)

您可以使用global查找正则表达式,然后在找到正则表达式的行上执行命令。

在这种情况下,它会从行的开头查找24次任意字符,如果其后的字符与HKZ匹配,则删除该行。 (d在命令末尾代表删除)。

:g/^.\{24\}[HKZ]/d
Peter Ricker指出,{p> 编辑也会有效{。}}。

\%25c

:g/\%25c[HKZ]/d 匹配第25列,然后从那里执行正则表达式。

如果您想要匹配虚拟列,也可以使用\%25c

答案 1 :(得分:0)

您可以尝试以下ex命令:

:if match( "HKZ", strpart( getline("."), 24, 1) ) != -1 | delete | endif