我有以下命令: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) –