有人使用 cat 将多个git format-patch得到的输出合并成了一个文件,将其拆开。
观察发现,此种格式的邮件以 commit XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 作为分界点。显然使用 awk 可以很容易地解决问题。
awk '/^commit ([0-9a-f]*)/{filename=$2".diff"}{print > filename }' < 文件名