patchクラフトワークス

kuma
アニメ『ウィッチクラフトワークス』(2014)
学園のカリスマ美少女とは、たまたま席が隣なだけで、たまたまバスが一緒なだけで、縁なんてないと思っていたのに、ある日命を救われます。ずっとその美少女から護衛されていたようです。美少女曰く「多華宮(たかみや)くんは私のお姫様だから』といって、お姫様抱っこばかりされます。そして、その美少女は魔女だったようです。しかも圧倒的に強い。
いろいろぶっ飛んでて楽しく見れます。

タイトル画は、このアニメに出てくる、パッチワークのぬいぐるみを真似て描いたものです。ただのクマより、継ぎ接ぎのクマの方が可愛らしいです。ということで、テキストファイルをpatchワークしてみます。今回は1ファイルへのpatchあてになります。

~$ seq 10 > a
~$ cp a b
~$ vi b
~$ sed s/3/30/ -i b
~$ diff -y -W30 a b | expand -t8
1               1
2               2
3             | 30
4               4
5               5
6               6
7               7
8               8
9               9
10              10
~$ 
~$ diff -c a b > tmp.patch
~$ cat tmp.patch
*** a	2016-09-04 15:25:04.899705801 +0900
--- b	2016-09-04 15:26:07.883454771 +0900
***************
*** 1,6 ****
  1
  2
! 3
  4
  5
  6
--- 1,6 ----
  1
  2
! 30
  4
  5
  6
~$ 

ここでファイルbを削除してファイルaのみにします。中身も確認しておきましょう。

~$ rm b
~$ cat a
1
2
3
4
5
6
7
8
9
10
~$ 

ファイルaにpatchをあてましょう。

~$ patch < tmp.patch
patching file a
~$ cat a
1
2
30
4
5
6
7
8
9
10
~$ 

patchをあてるとファイルaがファイルbの内容に修正されました。

aという名前のファイルではなく、他の名前のファイルにpatchをあてるには、-oオプションを使います。
ファイルaを消して別の名前のファイルzを作ります。

~$ rm a
~$ seq 10 > z
~$ cat z
1
2
3
4
5
6
7
8
9
10
~$ 

では、ファイルzにpatchをあてましょう。

~$ patch -c z < tmp.patch
patching file z
~$ cat z
1
2
30
4
5
6
7
8
9
10
~$ 

元に戻すには、-r(リバースオプション)を指定します。

~$ patch -R -c z < tmp.patch
patching file z
~$ cat z
1
2
3
4
5
6
7
8
9
10
~$ 

コメント

タイトルとURLをコピーしました