如何使用 GNU sed 删除特定行和以下空行?

5 sed

我有以下文字:

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
Run Code Online (Sandbox Code Playgroud)

我想删除以“开始日期”开头的行和以下空行。换句话说,我只想:

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
Run Code Online (Sandbox Code Playgroud)

我希望我的问题不是包含特定字符串删除行和以下行的重复

jth*_*ill 7

sed '/^Start-Date:/ {N; /\n$/d}'
Run Code Online (Sandbox Code Playgroud)

sed 是一个流编辑器,啜饮/识别线路杂物并随心所欲。

N是“将换行符和下一个输入行附加到当前缓冲区”,因此\n在缓冲区中是附加行的开头/\n$/d意味着“如果缓冲区中的最后一个附加行是空的,则将其全部删除”。