Skip to content

Latest commit

 

History

History
39 lines (30 loc) · 966 Bytes

021-cmp.md

File metadata and controls

39 lines (30 loc) · 966 Bytes

cmp

cmpは、2つのファイルを比較する。

2つのファイルの内容が同じ場合は何も出力しない。違う場合、最初の違いがある箇所のバイト数と行番号を出力する。バイト数と行番号は1から始まる。

$ echo hello > foo
$ echo hello > bar
$ cmp foo bar
$ echo heXlo > bar
$ cmp foo bar
foo bar differ: byte 3, line 1

引数-lは、それぞれの違いについて、バイト数を10進数、バイトの値を8進数で出力する

$ ehco hello > foo
$ echo heXXX > bar
$ cmp -l foo bar
3 154 130
4 154 130
5 157 130

-sはファイルに違いがあっても何も出力しない。結果はexit値のみで判断する。ファイルが同一ならば0が、違うならば1が、エラーが起きたならば1以上の値が出力される。

$ cmp foo foo
$ echo $?
0
$ cmp foo bar
$ ecno $?
1

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/cmp.html