我想在匹配的模式之前和之后注释(#)6行。我提出了这个问题。
How do I delete a matching line, the line above and the one below it, using sed?
我试着对这个解决方案使用hold buffer,但不起作用。
我在一个文件中多次出现以下序列:
aaaa
bbbb
cccc
dddd
eeee
ffff
gggg
hhhh
iiii
jjjj
kkkk
llll
mmmm
nnnn
oooo 如果我搜索hhhh,那么输出文件应该如下所示:
aaaa
#bbbb
#cccc
#dddd
#eeee
#ffff
#gggg
#hhhh
#iiii
#jjjj
#kkkk
#llll
#mmmm
#nnnn
oooo 请帮助我使用sed或任何其他脚本执行此操作!
发布于 2013-06-25 23:31:17
这可能适用于您(GNU sed):
sed -r ':a;s/\n/&/6;tb;$!{N;ba};:b;/SEARCH_STRING/!{P;D};s/\n/&/12;tc;$!{N;bb};:c;s/^/#/gm' filehttps://stackoverflow.com/questions/17297046
复制相似问题