Linux

【cmp】ファイルを1バイトごとに比較する|Linuxコマンド基礎

今回は、Linuxコマンドでファイルを1バイトごとに比較する方法(cmpコマンド)について分かりやすくご説明いたします。

 

うちぱぱ
うちぱぱ
それでは始めましょう!

ファイルを1バイトごとに比較する【cmp】

 

書式

cmp [オプション]

オプション

-b 異なるバイトを表示
-i 数値1[:数値2] 数値1のバイト位置までは差分があっても無視。数値2を指定した場合は、比較する2つ目のファイルの数値2のバイト位置までを無視
-n 数値 指定した数値のバイト位置までで比較
-s 2つのファイルが異なるかどうかのみを表示

 

2つのファイルを比較します。1バイトずつ比較し、標準出力にその結果を書き出します。
比較対象のファイルを2つ指定するか、1つ指定し、かつ「-」を指定すると、標準入力からの入力を比較ファイルとして扱います。
指定した2つのファイルに差分が無い場合は、何も出力せずに終了します。差分がある場合は、バイト位置と行を表示します。

コマンド実行例

2つのファイルを比較する

$ cmp -b passwd.org passwd

テキストとパイプからの入力を比較する

$ cat test.org
test
$ cat test.org | cmp test -
test - 異なります: バイト2、行1

バイト数を指定して比較する

$ cmp -n 1 test test.org   ⇒最初の1バイトのみの阿合は違いがわからない
$ cmp -n 2 test test.org   ⇒2バイトを対象とすると違いを検知できる
test test.org 異なります: バイト2、行1

 

うちぱぱ
うちぱぱ
今回は以上となります!