私は次のコマンドを持っています:sed -i -e '/match1/,+2d' filex
、ファイル "ファイルx"の "match1"というマッチを見つけた後に2行を削除します。マッチ1、マッチ2のようにいくつかのマッチを追加したいと思っています....どのように "sed"を使用して一致/マッチ後に2行を削除できますか?
マッチを見つけたら2行削除しますので、どうすればいいですか? sedのバージョンおよびプラットフォームに応じて、
私は次のコマンドを持っています:sed -i -e '/match1/,+2d' filex
、ファイル "ファイルx"の "match1"というマッチを見つけた後に2行を削除します。マッチ1、マッチ2のようにいくつかのマッチを追加したいと思っています....どのように "sed"を使用して一致/マッチ後に2行を削除できますか?
マッチを見つけたら2行削除しますので、どうすればいいですか? sedのバージョンおよびプラットフォームに応じて、
ないsedのユーザーが、あなたが使用することができます私には思える:
sed -i -e '/(match1|match2)/,+2d' filex
それ以外の場合は、可能な場合は次のようにしてください:
sed -i -e '/match1/,+2d' filex && sed -i -e '/match2/,+2d' filex
EDIT:私は正しいアイデアを持っていたようですが、ziuはそれを得ました。
私が正しくあなたを理解していれば、あなたはseq 10 | sed '3i match1' > input.txt
で入力を作成し、例えば
sed -e '/match1/,+2d' 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) –