jos*_*shy 1 regex vim perl sed
我想在匹配模式之前和之后评论(#)6行.我提到了这个问题.
我尝试使用保持缓冲区来解决此问题,但无法正常工作.
我在文件中多次出现以下序列:
aaaa
bbbb
cccc
dddd
eeee
ffff
gggg
hhhh
iiii
jjjj
kkkk
llll
mmmm
nnnn
oooo
Run Code Online (Sandbox Code Playgroud)
如果我搜索了hhhh
,那么输出文件应该在下面给出:
aaaa
#bbbb
#cccc
#dddd
#eeee
#ffff
#gggg
#hhhh
#iiii
#jjjj
#kkkk
#llll
#mmmm
#nnnn
oooo
Run Code Online (Sandbox Code Playgroud)
请帮我用sed或任何其他脚本执行此操作!
rom*_*inl 12
这个问题被标记为Vim,所以...我心爱的人:help :global
,:help :normal
还有救援人员!
:g/hhhh/-6,+6norm I#
Run Code Online (Sandbox Code Playgroud)
:substitute
变种:
:g/hhhh/-6,+6s/^/#
Run Code Online (Sandbox Code Playgroud)
分解:
该:global
命令用于为与给定模式匹配的每一行执行Ex命令.
:g/hhhh/d
将删除包含的每一行hhhh
.
Ex命令通常接受可选范围.范围可以使用绝对行号5,15
和/或相对行号-3,+41
.
:g/hhhh/-6,+6d
将删除上面6行和每行包含6行之间的所有内容hhhh
.
该:normal
命令允许我们从命令行执行常规命令,并接受范围,就像其他Ex命令一样.I#
是#
在行的开头插入一个最简单的方法,所以我们可以:normal I#
从命令行执行,这将我们带到第一个解决方案:
:g/hhhh/-6,+6norm I#
Run Code Online (Sandbox Code Playgroud)作为Ex命令,:substitute
也接受一个范围,因此我们也可以使用它#
在该范围内的每一行的开头插入一个,这将我们带到第二个解决方案:
:g/hhhh/-6,+6s/^/#
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
817 次 |
最近记录: |