目录

作弊条:根据特定模式把一个文件拆成多个文件

问题

有人使用 cat 将多个git format-patch得到的输出合并成了一个文件,将其拆开。

观察发现,此种格式的邮件以 commit XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 作为分界点。显然使用 awk 可以很容易地解决问题。

awk '/^commit ([0-9a-f]*)/{filename=$2".diff"}{print > filename }' < 文件名