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