我有以下命令:sed -i -e '/match1/,+2d' filex
,它在文件“文件x”中找到匹配“match1”后删除2行。我想添加几个匹配,像match1,匹配2 ....如何使用“sed”在比赛/比赛后删除2行?
所以它会删除2行后找到任何匹配,我怎么能做到这一点?
我有以下命令:sed -i -e '/match1/,+2d' filex
,它在文件“文件x”中找到匹配“match1”后删除2行。我想添加几个匹配,像match1,匹配2 ....如何使用“sed”在比赛/比赛后删除2行?
所以它会删除2行后找到任何匹配,我怎么能做到这一点?
不是SED用户,但在我看来,你可以使用:
sed -i -e '/(match1|match2)/,+2d' filex
否则,如果可以的话,你可以这样做:
sed -i -e '/match1/,+2d' filex && sed -i -e '/match2/,+2d' filex
编辑:看起来像我有正确的想法,但ziu明白了。
如果我理解正确的话,你想
sed -e '/match1/,+2d' input.txt
例如,创建输入与seq 10 | sed '3i match1' > input.txt
:
1
2
match1
3
4
5
6
7
8
9
10
的sed -e '/match1/,+2d' input.txt
输出将是:
1
2
5
6
7
8
9
10
你可以给一个输入/输出的例子,使其更清晰你所期望的? – sehe
你的情况有明显的'/ match1 /,+ 2d;/match2 /,+ 2d'有什么不对吗?它不会识别重叠,但是您的原始表达也不会。 – thiton
[sed或awk:删除模式后的n行]的可能重复(https://stackoverflow.com/questions/4396974/sed-or-awk-delete-n-lines-following-a-pattern) –