lor*_*age 0 vim text-processing regular-expression
我有相当大的文件,我需要替换其中的文件NX
,N1
但前提是该行已经包含NX
作为模式。到目前为止,我通过首先搜索NX
with 的出现来手动执行此操作:
/NX
Run Code Online (Sandbox Code Playgroud)
然后使用
'<,'>s/N1/NX
Run Code Online (Sandbox Code Playgroud)
但这些文件确实又大又长,我在这个手动过程中犯错误的可能性非常高。有没有办法在 Vim 中更有效地做到这一点?
以下是其中一个文件中的一行的示例:
S22Tg K1B12N1Tg D1AE22K5 K2B12N1Tg D1AE22K6 W01B12N1Tg D1AE22TDNXW01 W02B12N1Tg D1AE22TDNXW02 W03B12N1Tg
Run Code Online (Sandbox Code Playgroud)
请注意,这些行都非常相似,仅在字母后面出现的数字方面有所不同。
在 Vim 中,您可以将替换限制为包含以下内容的行NX
:
:g/NX/s/N1/NX/
Run Code Online (Sandbox Code Playgroud)
在替换之前/NX/
使用 使得 Vim 仅在包含 的下一行上执行它NX
(使用范围),而使用 则:g
使其在所有匹配 的行上运行NX
。