sed怎样跨行匹配?

sed怎样跨行匹配?

例如,文件
复制内容到剪贴板
代码:
key1
      name1 = value1
      name2 = value2

key2
     name1 = value1
     name2 = value2
......
key1, key2...在行首; name1, name2...前面是tab键; key1, key2...之间用一个空行分隔,用sed怎样删除key1,而不影响key2?      
复制内容到剪贴板
代码:
[color=blue]-(user@host:tty)-(tmp)-
[6376 0] %[/color] cat file
key1
    name1=value1
    name2=value2

key2
    name1=value3
    name2=value4

key3
    name1=value5
    name2=value6
[color=blue]-(user@host:tty)-(tmp)-
[6376 0] %[/color] sed -ne '/^key1/ { n; n; n; b; }; p' file
key2
    name1=value3
    name2=value4

key3
    name1=value5
    name2=value6
[color=blue]-(user@host:tty)-(tmp)-
[6376 0] %[/color]
      
复制内容到剪贴板
代码:
[color=blue]-(user@host:tty)-(tmp)-
[248 0] %[/color] cat file
key1
    line1

key2
    line2
    line3
    line33
    line44

key3
    line4
    line5
    line6
[color=blue]-(user@host:tty)-(tmp)-
[248 0] %[/color] sed -ne '/^key2/ { :again; n; s/^.//; t again; b; }; p' file
key1
    line1

key3
    line4
    line5
    line6
[color=blue]-(user@host:tty)-(tmp)-
[248 0] %[/color]
      
斑竹真是高手!可惜看不懂。。。      
对正则表达式还算熟悉,但是这个看不懂,版主可否稍微解释一下,多谢!      
非三言两语所能解释清楚,如果赶兴趣,请参考《sed & awk》,置顶的帖子可以找到相关链接;另外,sed 4.0 的 info 文档中有一些经典的例子,建议一看