GNU/Linux >> Linux の 問題 >  >> Linux

特定の文字列と次の行を含む行を削除しますか?

私はこれを使用します

cat foo.txt | sed'/ bar / d'

文字列barを含む行を削除します ファイル内。

ただし、これらの行とその直後の行を削除したいのですが 。できればsedで 、 awk またはMinGW32で利用可能なその他のツール。

これは、 grepで取得できるものとは逆です。 -Aを使用 および-B 一致する行と、一致する行の前後の行を印刷します。

それを達成する簡単な方法はありますか?

承認された回答:

GNU sedを使用している場合(組み込みLinuxまたはCygwinが埋め込まれていない場合):

sed '/bar/,+1 d'

barがある場合 2つの連続する行で、これは2番目の行を分析せずに削除します。たとえば、3行のファイル barがある場合 /バー / foo foo 回線は残ります。


Linux
  1. ファイルの途中で特定の行を表示するためのクイックunixコマンド?

  2. コマンド ラインで文字列を 16 進数に変換する

  3. sed を使用して二重の空行のみを削除するには?

  1. sedにおける「ホールド空間」と「パターン空間」の概念

  2. sed を使用してファイルの最後の n 行を削除する方法

  3. Linux - 特定の行からファイルの最後までの grep

  1. Sedテキストエディタの使い方を学ぶ

  2. Linux Sedコマンド:使用法と例

  3. sedを使用してコマンドラインでテキストを操作する