首页 > 代码库 > sed删除文本第一个匹配行

sed删除文本第一个匹配行

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

-----------------------------aaaaaaahappy-123456bbbbbbasdasawehappy-123456dsafsdfsdsagasdfasdhappy-123456------------------------------

目标文本:

-----------------------------aaaaaaabbbbbbasdasawehappy-123456dsafsdfsdsagasdfasdhappy-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\n// file