我正在处理一个大文本文件,需要能够根据该行上第25个字符的值删除行,即它是否等于H,K或Z.这是否可行,或者只是通过匹配其中一个字母并运行3个命令或(甚至更好)所有3合一命令?任何帮助非常感谢!
答案 0 :(得分:3)
您可以使用global查找正则表达式,然后在找到正则表达式的行上执行命令。
在这种情况下,它会从行的开头查找24次任意字符,如果其后的字符与H
,K
或Z
匹配,则删除该行。 (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