一致するキーワードが見つかった場合は、上記の行を削除してください。

一致するキーワードが見つかった場合は、上記の行を削除してください。

次のデータがあります。

Amit:   
  Mem  30  40 50  
Sumit:  
  Mem  50 70 80   
Tarun:  
Nishant:  
  Mem  90 20 45    

「Tarun:」に示すようにMemは存在しないため、削除する必要があります。

最終出力は次のようにする必要があります

Amit:   
  Mem  30  40 50   
Sumit:   
  Mem  50 70 80   
Nishant:   
  Mem  90 20 45     

この問題を解決するのに役立ちます。試しましたが、目的の結果が得られませんでした。

ベストアンサー1

$ sed '$!N;/\n  Mem/p;D' file
Amit:
  Mem  30  40 50
Sumit:
  Mem  50 70 80
Nishant:
  Mem  90 20 45
  • $!N: 最後の行ではなく各行の間に区切り線を使用して、次の行をバッファに追加します。

  • /\n  Mem/p:バッファに改行文字と文字列  Mem(2つのスペースの合計Mem)が含まれている場合は、バッファを印刷します。[[:blank:]]*行の先頭にスペースまたはタブを必要なだけ残すために2つのスペースを使用することもできますMem

  • D:バッファの最初の改行文字の前のデータを削除し、次のループを開始します。

おすすめ記事