- 论坛徽章:
- 28
|
回复 23# kkshaq
sed -r '/Start and/,/End Time/{/^\s+End Time/G;b}’这部的作用是啥啊?
=>
就是以下这部分数据最后追加一个"\n"(即一个空行),然后b就是跳到命令结尾 让pattern space被打印出来- Start and End Time:
- -------------------------------------------------------------------------------
- Start Time: 2016-08-08 18:43:11.126569426
- End Time: 2016-08-09 04:50:10.248093935
复制代码 后面的/-/{:a;$!N;/\n\s*$/!{$!ba};s/\n/&/5;t};d是什么意思呢。。希望能够解释一下!谢谢
=>
将"-"的行到以单独"空格或tab"组成的行追加到pattern space
然后判断这个pattern space 也就是这段数据是否含有6行(即 5个"\n"),如果有的话就直接跳转(t)到命令结尾,让pattern space被打印出来
如下面这段在pattern space中只含有4个"\n",不符合条例,不执行t命令,所以这个pattern space的内容最终会被删掉:- -------------------------------------------------------------------------------
- Status Codes of getAuthentication:
- -------------------------------------------------------------------------------
- Share [%] Total Value
-
复制代码 而下面这段就有6个"\n",有7行数据,当执行s/\n/&/5时,成功的.所以会执行t命令跳转到命令结尾 pattern space就会被打印出来(如果没有加-n选项的话)- -------------------------------------------------------------------------------
- Status Codes of APNSNotification:
- -------------------------------------------------------------------------------
- Share [%] Total Value
- 90.48 19 0
- 9.52 2 21
-
复制代码 其它不合条件的行都将被删除(d) |
|