diffはプログラマ七つ道具のひとつというか、よく使うんですが、diffの出力については大体の読み方は理解しているものの、細かなところまでは理解できていませんでした。 なんで、diffの生成した差分出力をオリジナルファイルに適応する、これまたプログラマ七つ道具*1といえそうなpatchを勉強がてら実装してみました。 まず、diffの形式ですが、一般的なunified diffを対象にします。例えば、以下のようなものです。 --- hello1.pl 2007-10-12 04:51:39.000000000 +0900 +++ hello2.pl 2007-10-12 04:52:11.000000000 +0900 @@ -1,5 +1,5 @@ #!/usr/bin/env perl -#hello1.pl +#hello2.pl use strict; use warnings; @