.diffファイルから特定ファイルの差分のみ取り出すスクリプト

以下のようなhoge.diffファイルがあったとして、
hoge.diff

--- hoge.orig/fuga.pl
+++ hoge/fuga.pl
@@ -32,8 +32,4 @@
...省略...
--- hoge.orig/hidebu.py
+++ hoge/hidebu.py
@@ -0,0 +1,6 @@
...省略...
--- hoge.orig/abeshi.pl
+++ hoge/abeshi.pl
@@ -49,3 +50,6 @@
...省略...

hidebu.pyの差分のみ取り出したいとき、sedを使うなら以下のようなスクリプトを用意して、
cut_hidebu.sed:

#!/bin/sed -f
/^---.*hidebu\.py/{
  :loop
  n
  /^---/Q
  b loop
}
d
$ []chmod a+x cut_hidebu.sed[]
$ []./cut_hidebu.sed hoge.diff[]
[]--- hoge.orig/hidebu.py[]
[]+++ hoge/hidebu.py[]
[]@@ -0,0 +1,6 @@[]
[]...省略...[]

でOK。
sedを使って一行で行くなら、

$ []sed -n '/^---.*hidebu\.py/{:loop;p;n;/^---/Q;b loop;}' hoge.diff[]

sedの-nオプションのため、「n;」の前に「p;」を挿入する必要がある。
もし「}」の後ろにコマンドが続くなら、「}」の後ろに「;」をつける必要がある点に注意。(←はまった)