首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在sed中注释匹配模式前后的(#) 6行

如何在sed中注释匹配模式前后的(#) 6行
EN

Stack Overflow用户
提问于 2013-06-25 20:14:22
回答 5查看 1.1K关注 0票数 1

我想在匹配的模式之前和之后注释(#)6行。我提出了这个问题。

How do I delete a matching line, the line above and the one below it, using sed?

我试着对这个解决方案使用hold buffer,但不起作用。

我在一个文件中多次出现以下序列:

代码语言:javascript
运行
复制
aaaa  
bbbb  
cccc  
dddd  
eeee  
ffff  
gggg  
hhhh  
iiii  
jjjj  
kkkk  
llll  
mmmm  
nnnn  
oooo  

如果我搜索hhhh,那么输出文件应该如下所示:

代码语言:javascript
运行
复制
  aaaa  
  #bbbb  
  #cccc  
  #dddd  
  #eeee  
  #ffff  
  #gggg  
  #hhhh  
  #iiii  
  #jjjj  
  #kkkk  
  #llll  
  #mmmm  
  #nnnn  
  oooo  

请帮助我使用sed或任何其他脚本执行此操作!

EN

Stack Overflow用户

回答已采纳

发布于 2013-06-25 23:31:17

这可能适用于您(GNU sed):

代码语言:javascript
运行
复制
sed -r ':a;s/\n/&/6;tb;$!{N;ba};:b;/SEARCH_STRING/!{P;D};s/\n/&/12;tc;$!{N;bb};:c;s/^/#/gm' file
票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17297046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档