diff -u (-c) と patch コマンド
[linux] diff -u (-c) と patch コマンド の関係について確認してみた
結論としては
$diff -c wrongfile correctedfile > patchfile.patch
にてパッチファイルを用意して
patch 修正すべきファイル patch.file
にてパッチを当てる
以下、実験してみた結果
hirasawa@ubu1204:~/desktop/diff_patch$ cat orig.txt 1 1 2 2 3 3 4 4 hirasawa@ubu1204:~/desktop/diff_patch$ cat revised.txt 1 1 newly added btw 1 and 2 2 2 3 3revised 4 4 hirasawa@ubu1204:~/desktop/diff_patch$
-u (unified ) option
hirasawa@ubu1204:~/desktop/diff_patch$ diff -u orig.txt revised.txt --- orig.txt 2013-05-23 11:52:26.175662414 +0900 +++ revised.txt 2013-05-23 11:52:43.523748438 +0900 @@ -1,4 +1,5 @@ 1 1 + newly added btw 1 and 2 2 2 -3 3 +3 3revised 4 4
-c context option
hirasawa@ubu1204:~/desktop/diff_patch$ diff -c orig.txt revised.txt *** orig.txt 2013-05-23 11:52:26.175662414 +0900 --- revised.txt 2013-05-23 11:52:43.523748438 +0900 *************** *** 1,4 **** 1 1 2 2 ! 3 3 4 4 --- 1,5 ---- 1 1 + newly added btw 1 and 2 2 2 ! 3 3revised 4 4
unifiedのほうが私のこのみにみえるのでこちらでパッチを作成する
hirasawa@ubu1204:~/desktop/diff_patch$ hirasawa@ubu1204:~/desktop/diff_patch$ diff -u orig.txt revised.txt > test.patch hirasawa@ubu1204:~/desktop/diff_patch$
hirasawa@ubu1204:~/desktop/diff_patch$ cat test.patch --- orig.txt 2013-05-23 11:52:26.175662414 +0900 +++ revised.txt 2013-05-23 11:52:43.523748438 +0900 @@ -1,4 +1,5 @@ 1 1 + newly added btw 1 and 2 2 2 -3 3 +3 3revised 4 4
オリジナルのファイルをコピーしてテスト用のファイル(test.txt)を作る
hirasawa@ubu1204:~/desktop/diff_patch$ cp -p orig.txt test.txt
hirasawa@ubu1204:~/desktop/diff_patch$ patch test.txt < test.patch patching file test.txt hirasawa@ubu1204:~/desktop/diff_patch$ diff test.txt orig.txt 2d1 < newly added btw 1 and 2 4c3 < 3 3revised --- > 3 3 hirasawa@ubu1204:~/desktop/diff_patch$ diff test.txt revised.txt hirasawa@ubu1204:~/desktop/diff_patch$ hirasawa@ubu1204:~/desktop/diff_patch$ hirasawa@ubu1204:~/desktop/diff_patch$ hirasawa@ubu1204:~/desktop/diff_patch$ hirasawa@ubu1204:~/desktop/diff_patch$ hirasawa@ubu1204:~/desktop/diff_patch$ hirasawa@ubu1204:~/desktop/diff_patch$ patch -R test.txt < test.patch patching file test.txt hirasawa@ubu1204:~/desktop/diff_patch$ diff test.txt orig.txt hirasawa@ubu1204:~/desktop/diff_patch$ diff test.txt revised.txt 1a2 > newly added btw 1 and 2 3c4 < 3 3 --- > 3 3revised hirasawa@ubu1204:~/desktop/diff_patch$