viを使って検索パターンの後の行を完全に削除するには?

viを使って検索パターンの後の行を完全に削除するには?

約1,000行ほどの大容量ファイルがあり、次のものが必要だとします。次の行を削除してください。特定のパターンを次のように呼び出しますsomePatern

状況:

  • /somePattern手動では実行できません(検索および/または手動で行の下に移動して削除することはできません)。
  • シングル裏地がベストです。
  • パターンを含む行の後の行は消える必要があります(空白行なし)。
  • UNIXと互換性がなければなりません。 (私はDebianを使用していますが、UNIXでは必要です。両方が機能する場合は良いでしょう。)

また、誰もがこの内容とより正規表現の内容を学ぶことができるウェブサイトへのリンクを持っているといいでしょう! (でも初歩型ではないので書いてみました。感謝してvimtutor他の方々のご好意に感謝します。)

答え1

g/somepattern/+d

以下の例では、bazが削除されました。 (しかしVimでのみ確認しました。)

foo     
bar 
somepattern 
baz 
someotherpattern

答え2

見るここセクション 3.2 「動作範囲、行アドレス指定および表示」で。 Vimコマンドは前の行の範囲を許可できるようです。行範囲を指定すると、コマンドの実行をテキストの特定の部分にのみ制限できます。

たとえば、

/pattern[/]「pattern」テキストに一致する次の行

?pattern[?]「パターン」テキストに一致する前の行

関連情報