次のテキストがあります。
Start-Date: 2013-11-11 07:43:49
Commandline: apt-get install --no-install-recommends catfish
Start-Date: 2013-11-11 11:27:07
Start-Date: 2013-10-16 22:53:02
Start-Date: 2013-10-16 22:55:16
Start-Date: 2013-10-17 22:41:09
Start-Date: 2013-10-17 22:42:02
Start-Date: 2013-10-17 22:42:33
Start-Date: 2013-10-17 22:46:01
Start-Date: 2013-10-17 23:00:06
Commandline: apt-get install shimmer-themes
Start-Date: 2013-10-17 23:01:52
Commandline: apt-get install --no-install-recommends gedit
「開始日」で始まる行と次の空行を削除したいと思います。つまり、私はただ次のことをしたいと思います:
Start-Date: 2013-11-11 07:43:49
Commandline: apt-get install --no-install-recommends catfish
Start-Date: 2013-10-17 23:00:06
Commandline: apt-get install shimmer-themes
Start-Date: 2013-10-17 23:01:52
Commandline: apt-get install --no-install-recommends gedit
私の質問が重複していないことを願っています。特定の文字列を含む行と次の行を削除します。
ベストアンサー1
sed '/^Start-Date:/ {N; /\n$/d}'
sedは、ライングループを吸収/認識し、目的の操作を実行するストリームエディタです。
N
「現在のバッファに改行と次の入力ラインを追加します」なので、バッファ\n
にあるのは追加されたラインの先頭です。/\n$/d
これは、「バッファに最後に追加された行が空の場合はすべて削除」を意味します。