使用sed,如何删除一系列行中的所有字符串实例?

时间:2014-05-14 16:49:22

标签: linux bash sed

我知道

sed '/match/ d' file

删除所有匹配的行,

sed '1,3 s/match//g' file

删除前3行中的所有匹配项。

但是如何删除前3行中匹配的所有行?

如果可能的话,给出一个只有一个sed调用的解决方案(没有管道)。

3 个答案:

答案 0 :(得分:3)

你可以将两者结合起来:

sed '1,3{/match/d;}' file

这将删除指定地址范围内包含match的行,即上例中第1-3行。

答案 1 :(得分:0)

如果你想测试awk,那就是:

awk '/match/ && NR<=3 {next} 1' file

答案 2 :(得分:0)

awk -v string="foo" 'NR<=3 && index($0,string) {next} 1' file