JP1/Advanced Shell
形式
cmp[-l|-s]パス名1 パス名2[比較開始位置1[比較開始位置2]]
機能
バイナリファイルを比較します。異なるバイト位置を表示できます。
引数
-lオプションおよび-sオプションを指定しない場合は,最初に検出した異なる場所を表示します。-lオプションおよび-sオプションを同時に指定した場合はエラーになります。
- -l
- 違いのあるバイトのオフセット(10進数)とその値(8進数)を表示します。
- -s
- 異なるかどうかを示す終了状態を返します。
- パス名1
- 比較元のパス名を指定します。パス名1に「-」を指定すると,標準入力から比較する内容を入力できます。
- パス名2
- 比較先のパス名を指定します。パス名2に「-」を指定すると,標準入力から比較する内容を入力できます。
- 比較開始位置1
- パス名1の比較を開始する位置(バイト)を指定します。
- 比較開始位置2
- パス名2の比較を開始する位置(バイト)を指定します。
戻り値
戻り値 意味 0 正常終了。ファイルは同一です。 1 正常終了。ファイルは異なっています。または,どちらかのファイルで先にファイルの終端(EOF)に到達しました。ファイルの終端に達した場合,メッセージ(cmp: EOF on ファイル名)を出力します。 2以上 エラー終了
注意事項
- 改行コードが[CR]+[LF]の場合,2バイトと見なします。
- Windowsの場合,ファイルおよび標準入力をバイナリモードで入力します。改行コードは変換しません。
使用例
cmpコマンドを実行した結果表示に使用する入力ファイルの形式を次に示します。「△」はスペース,「→」はタブを示します。
- abc.txt
aaaaaaaaaaa bbbbbbbb △△△△△△△ cccccccccccccccc → → → △△△△△△△△△△△ dddddddddddd- abcd.txt
aaaaaaaaaaa bbbbbbbb △△△△△△△ cccccccccccccccc △△△△△△△△△△△△△△△△ △△△△△△△△△△△△△△△△△△ △△△△△△△△△△△△△△△ △△△△△△△△△△△△△△△△△△△△△△△△△△△ dddddddddddd eeeeeeeeeeeeeeeee → → → →
- -lオプションを指定して,abc.txtとabcd.txtで違いのあるバイトのオフセット(10進数)とその値(8進数)を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\cmp -l abc.txt abcd.txt 49 12 40 50 11 40 51 11 40 52 11 40 53 12 40 54 12 40 65 40 12 66 12 40 67 144 40 68 144 40 69 144 40 70 144 40 71 144 40 72 144 40 73 144 40 74 144 40 75 144 40 76 144 40 77 144 40 78 144 40 79 12 40 cmp: EOF on abc.txt- -sオプションを指定して,結果を表示しないで戻り値を返すようにします。
C:\TEMP>%ADSH_OSCMD_DIR%\cmp -s abc.txt abcd.txt- skipオプションを指定して,ファイルの比較を開始するバイトをそれぞれ3に設定します。上段にskipを指定しない場合を,下段にskipを3に設定した場合を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\cmp abc.txt abcd.txt abc.txt abcd.txt differ: char 49, line 7 C:\TEMP>%ADSH_OSCMD_DIR%\cmp abc.txt abcd.txt 3 3 abc.txt abcd.txt differ: char 46, line 7- オプションエラーのメッセージを表示します。
- Windowsの例
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。
C:\TEMP>%ADSH_OSCMD_DIR%\cmp -w cmp: illegal option -- w usage: cmp [-l | -s] file1 file2 [skip1 [skip2]]
- ファイルがない場合のエラーメッセージを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\cmp file99 file123 cmp: file99: No such file or directory
All Rights Reserved. Copyright (C) 2011, 2012, Hitachi, Ltd.