vimでは利用可能です...
:g/match/-1d
...一致する前に複数行を複数回削除します...
...そしてそれをいくつかの呼び出しと組み合わせます...
:g/match/+1d
...試合終了後に複数行を削除します...
:g/match/-1d,+1d
...前、後、および現在の行を削除...
sedも同じことができますか?
ベストアンサー1
sedをリクエストしましたが、ed
次のようにすることもできます。
$ seq 10 > input
$ ed -s input <<< '/5/ -2, /5/ +2 d'$'\n'w
$ cat input
1
2
8
9
10
これは、edにs
2つのコマンドを使用してファイルを自動的に編集するように指示します。input
- regexに一致する行から始めて
5
2行を減算し、regexに一致する行で終わり、5
2行を追加してd
範囲を削除します。
(ANSIエスケープされた改行文字で区切られています$'\n'
)
w
ファイルをディスクに書き換える