sed删除文本第一个匹配行

源文本如下,要求删除第一个为happy-123456的行。

-----------------------------
aaaaaaa
happy-123456
bbbbbb
asdasawe
happy-123456
dsafsdfsd
sagasdfasd
happy-123456
------------------------------

目标文本:

-----------------------------
aaaaaaa
bbbbbb
asdasawe
happy-123456
dsafsdfsd
sagasdfasd
happy-123456
------------------------------

sed代码1:

sed '0,/happy/{//d}' file

sed代码2:

sed '/happy/{x;/./p;d}' file

sed代码3:不建议使用,此代码思路是一次性将所有本行读入模式空间,然后再进行替换。文本较大时,处理起来没有较率,并且占用内存多。

sed ':a;N;$!ba;s/happy-123456
//' file
原文地址:https://www.cnblogs.com/Eivll0m/p/3810529.html