我知道
sed '/match/ d' file
删除所有匹配的行,
sed '1,3 s/match//g' file
删除前3行中的所有匹配项。
但是如何删除前3行中匹配的所有行?
如果可能的话,给出一个只有一个sed调用的解决方案(没有管道)。
答案 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