GNU merge

GNU mergeについて。 merge(1)はGNU Projectのソフトウェアのひとつ。 NetBSD 7.1.2のbase systemに含まれている1

シェルプログラミングで使おうとしたけれども、 man(1)のSYNOPSISが読みづらかったので 自分の言葉で使い方を残しておくことにする2

使用例

以下の2つのファイル original.txtchanged.txtがあるとする。

# 2017
original

# 2017, 2018
changed

ここで、 original.txt から changed.txtへの変更の差分を、 original.txtへ反映させたい。この場合、merge(1)はこのように実行すればよい2

$ merge original.txt original.txt changed.txt

すると original.txtchanged.txtとの差分を取り込み、 ファイル内容が変更されている。

$ cat original.txt
# 2017, 2018
changed

終了ステータス

ステータス 意味
0 コンフリクトなく正常終了した。
1 いくつかのコンフリクトがあった。
2 なんらかのトラブル

merge(1)へ渡したファイル名のファイルが見つからないときが、 ステータス2の代表例といえるだろう。


  1. rescueユーティリティには含まれていない。 

  2. 基本的には、man pagesの "merge incorporates all changes that lead from file2 to file3 into file1." を思い出していけばよい。