【发布时间】:2017-08-02 21:36:07
【问题描述】:
是否可以使用 sed 搜索特定的代码块并删除匹配项,并且只删除它之后的特定行?
例如,如果我有一个这样的块,并且想要删除特殊标记 1 并且只删除它之后的第二行:
special marker 1
text 1
text 2
text 3
我可以使用 sed 搜索块的实例并得出:
text 1
text 3
我知道以下命令:
sed -i '/START/,/END/ {/special marker 1/{n;n;N;d;}}' filename;
但是,这个命令只给我留下:
text 1
所以它似乎将下一行操作加倍并删除。有什么方法可以修复此命令或以其他方式执行此操作?
【问题讨论】: