次のデータがあります。
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
:バッファの最初の改行文字の前のデータを削除し、次のループを開始します。