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)
sed '/^Start-Date:/ {N; /\n$/d}'
Run Code Online (Sandbox Code Playgroud)
sed 是一个流编辑器,啜饮/识别线路杂物并随心所欲。
N
是“将换行符和下一个输入行附加到当前缓冲区”,因此\n
在缓冲区中是附加行的开头/\n$/d
意味着“如果缓冲区中的最后一个附加行是空的,则将其全部删除”。