Linuxで差分ファイルを使用してテキストファイルを更新する!(diff/patch)

Linuxで差分ファイルを使用してテキストファイルを更新します。

差分ファイルを準備する!

元のファイルを準備します。

$ cat sample_diff.txt
1,server01,user01
2,server02,user02
3,server03,user03

更新後のファイルを準備します。

$ cat sample_diff_new.txt
1,server01,user01
2,server02,user02
4,server04,user04

diffコマンドで、差分ファイルを作成します。

$ diff sample_diff.txt sample_diff_new.txt > sample_diff_patch.txt
$ cat sample_diff_patch.txt 
3c3
< 3,server03,user03
---
> 4,server04,user04

差分ファイルを使用してファイルを更新する!

patchコマンドと差分ファイルを使用してファイルを更新します。

$ patch -b sample_diff.txt  sample_diff_patch.txt
patching file sample_diff.txt
$ cat sample_diff.txt
1,server01,user01
2,server02,user02
4,server04,user04
$ ls -l sample_diff*
-rw-rw-r--. 1 usradmin usradmin 54 Feb  7 12:24 sample_diff_new.txt
-rw-rw-r--. 1 usradmin usradmin 48 Feb  7 12:24 sample_diff_patch.txt
-rw-rw-r--. 1 usradmin usradmin 54 Feb  7 12:25 sample_diff.txt
-rw-rw-r--. 1 usradmin usradmin 54 Feb  7 12:23 sample_diff.txt.orig

おわりに

巨大なデータファイルの更新には、差分の更新が便利と思いますが、最近ではpatchコマンドがデフォルトでインストールされていないことがあり、patchのパッケージのインストールが必要な場合があります。

関連記事

関連書籍(Amazon)