2つの物理ファイルの内容を比較してその差異を抽出してくれる
コマンドが IBM iによって用意されている。
それが CMPPFM コマンドである。
ファイルの比較ユーティリティーというのは比較的多くのプラットフォームで
用意されていて I5/OS で提供されているのが CMPPFM である。

何かのときにこのコマンドと使い方を覚えておくと役に立つ。
CMPPFM がどのように表示されるのかを知るために
ファイルをコピーしてコピー後の最初のレコードだけを
修正してみた。
物理ファイル・メンバーの比較 (CMPPFM)
選択項目を入力して,実行キーを押してください。
新ファイル . . . . . . . . . . > SHOHIN 名前
ライブラリー . . . . . . . . > QRPLOBJ *LIBL, NAME, *CURLIB
新メンバー . . . . . . . . . . *FIRST *FIRST, NAME, GENERIC*, *ALL
値の続きは+
旧ファイル . . . . . . . . . . > SHOHIN *NEWFILE, NAME
ライブラリー . . . . . . . . > QTRFIL *LIBL, NAME, *CURLIB
旧メンバー . . . . . . . . . . *NEWMBR *NEWMBR, NAME, *FIRST
値の続きは+
比較タイプ . . . . . . . . . . *LINE *LINE, *FILE, *WORD
報告書タイプ . . . . . . . . . *DIFF *DIFF, *SUMMARY, *CHANGE...
出力 . . . . . . . . . . . . . * *, *PRINT, *OUTFILE
追加のパラメーター
ソース・タイプの選択 . . . . . *ALL *ALL, NAME
続く ...
F3= 終了 F4=プロンプト F5= 最新表示 F12= 取り消し
F13= この画面の使用法 F24= キーの続き
結果は次のとおりである。
スプール・ファイルの表示
ファイル . . . : QUEPRT ページ/行 1/6
制御 . . . . . . 桁 1 - 127
検索 . . . . . .
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+....1....+....2....+..
IBM COMPARE V6R1M0 080215 20/09/14 11:47 ページ 1
新 : QRPLOBJ/SHOHIN(SHOHIN) 旧 : QTRFIL/SHOHIN(SHOHIN)
出力リストセクション ( 行 比較 )
新行 旧行
ID ソース行 タイプ LEN 番号 番号
----+----1----+----2----+----3----+----4----+
MAT= 2
I -NV-BS30S 目次ビデオ 01680000002 RPL= 1 0000003 0000003
D -NV-BS30S 目次ビデオ 016500000020
MAT= 26
IBM COMPARE V6R1M0 080215 20/09/14 11:47 ページ 2
新 : QRPLOBJ/SHOHIN(SHOHIN) 旧 : QTRFIL/SHOHIN(SHOHIN)
行 比較の要約および統計
行 一致の数 .......................................................: 28
変更合計(対+非対変更) ...........................................: 1
形式変換された行 ...................................................: 0
対になった変更(形式変換+対の挿入/削除) .........................: 1
新ファイルへの 行 挿入 ...........................................: 1
非対の挿入 .........................................................: 0
続く ...
F3= 終了 F12= 取消し F19= 左 F20= 右 F24= キーの続き
このスプール表示の
I -NV-BS30S 目次ビデオ 01680000002 RPL= 1 0000003 0000003 D -NV-BS30S 目次ビデオ 016500000020
が差異を表している。
定価 165000円を —> 168000円に修正した結果である。
これは 報告書タイプを *DIFF として差異がある部分(*LINE)を抽出するように
指示した結果である。
報告書タイプを *DETAIL にするとすべてのデータが出力されるので非常にみにくい表と
なってしまう。
自分でどのパターンの抽出が自分に適しているかをいろいろと試してみるのが
よいだろう。
