ファイルfoo
とファイルがあるとしましょうbar
。次に、次のコマンドを呼び出します。
$ diff foo bar > diff_foobar
$ rm bar
bar
合計から欠落している内容をプログラムで再構成する(簡単な)方法はありますか?foo
diff_foobar
答え1
「差分の適用」とも呼ばれる違いからファイルを書き換えるのは、ユーティリティが実行することですpatch
。
## Create two arbitrary files, `original' and `altered':
$ seq 0 3 >original
$ seq 7 11 >altered
## Compute a diff from `original' to `altered':
$ diff original altered >diff
## Copy `original' before patching it
$ cp -vi original original.0
`original' -> `original.0'
$ patch <diff original # This modifies `original'!
patching file original
## Confirm that we rebuilt the file from `original' and `diff`
$ diff --report-identical-files original altered
Files original and altered are identical
patchコマンドには、特にパッチを逆に適用するオプションもたくさんあります。
答え2
はい、パッチを適用します。
あなたは次のことをしました:
$ diff foo bar > diff_foobar
$ rm bar
今それをする:
$ patch foo -o bar < diff_foobar