lor*_*age 0 vim text-processing regular-expression
我有相当大的文件,我需要替换其中的文件NX,N1但前提是该行已经包含NX作为模式。到目前为止,我通过首先搜索NXwith 的出现来手动执行此操作:
/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。