SED:附加到块之后 [英] sed: Appending after a block
本文介绍了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屋!
查看全文