SED:附加到块之后 [英] sed: Appending after a block

查看:0
本文介绍了SED:附加到块之后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对sed非常陌生,我找到的所有东西都有一点在这里,有一点在那里。

我有一个文本文件,其中包含如下所示的块:

#start
a
b
c


#whatever
…

显然,这是一个简化的版本。我想在#start块的末尾追加一行代码:

#start
a
b
c
d

#whatever
…

我可以通过以下命令找到该块:

sed -n '/^#s*start/,/^$/ p' data.txt

所以我认为这是正确的方向。但是:

  • 所选内容包括空行,这是我不想要的
  • 我想不出如何在比赛后再加一行

推荐答案

带有sed:

sed '/#start/,/^$/ s/^$/d/;' file
  • /#start/,/^$/:搜索以#start开头、以空行结尾的块
  • s/^$/d/:用d替换匹配的空行

如果要在空行之前添加字符串:

sed '/#start/,/^$/{/^$/{s//d/;G;};}' file

这篇关于SED:附加到块之后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆