cmpコマンド(バイナリファイルの内容を比較する)
形式
cmp[-l|-s]パス名1 パス名2[比較開始位置1[比較開始位置2]]
機能
バイナリファイルを比較します。異なるバイト位置を表示できます。
引数
-lオプションおよび-sオプションを指定しない場合は,最初に検出した異なる場所を表示します。-lオプションおよび-sオプションを同時に指定した場合はエラーになります。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了。ファイルは同一です。 |
1 |
正常終了。ファイルは異なっています。または,どちらかのファイルで先にファイルの終端(EOF)に到達しました。ファイルの終端に達した場合,メッセージ(cmp: EOF on ファイル名)を出力します。 |
2以上 |
エラー終了 |
注意事項
-
改行コードが[CR]+[LF]の場合,2バイトと見なします。
-
Windowsの場合,ファイルおよび標準入力をバイナリモードで入力します。改行コードは変換しません。
使用例
この使用例では,次の内容が記述された「abc.txt」「abcd.txt」を基に,cmpコマンドの実行結果を説明します。「△」はスペース,「→」はタブを示します。
-
abc.txt
aaaaaaaaaaa bbbbbbbb △△△△△△△ cccccccccccccccc → → → △△△△△△△△△△△ dddddddddddd
-
abcd.txt
aaaaaaaaaaa bbbbbbbb △△△△△△△ cccccccccccccccc △△△△△△△△△△△△△△△△ △△△△△△△△△△△△△△△△△△ △△△△△△△△△△△△△△△ △△△△△△△△△△△△△△△△△△△△△△△△△△△ dddddddddddd eeeeeeeeeeeeeeeee → → → →
cmpコマンドを実行した結果表示に使用する入力ファイルの形式を次に示します。
-
-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