sed是一个流文本处理编辑器,一般我们使用的用法只是一行一行的处理文本,如果我们想对多行同时处理的话,就必须用到sed的高级命令了。举个例子,我们想要把```R与````中间的行前面都加上一个tab键,就可以用如下方法:

cat code-tra.sed
1 #!/bin/sed -nf
2 
3 /```R/!b end01
4 n
5 :combine
6 s/^/\t/
7 H;n
8 /```/!b combine
9 x
10 s/$/\n/
11 s/```/\n/
12 p
13 
14 b end02
15 :end01
16 p
17 :end02 
$ ./code-tra.sed <file>

取出多余等空行,即将两行及两行以上连续的空行转换成一行空行,通过vim可以很方便地处理:

:%s/\n\{3,\}/\r\r/e