diffでファイルを再構築する

diffでファイルを再構築する

ファイルfooとファイルがあるとしましょうbar。次に、次のコマンドを呼び出します。

$ diff foo bar > diff_foobar
$ rm bar

bar合計から欠落している内容をプログラムで再構成する(簡単な)方法はありますか?foodiff_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

関連情報