강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

두개의 파일을 비교하는 cmp: 두 파일비교의 다양한 방법들

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

두개의 파일을 비교하는 cmp: 두 파일비교의 다양한 방법들

 

 

 

 

cmp로 파일을 비교할 때에 -l옵션을 사용하면 두개의 파일을 비교하여 틀린 문자의 개수를 출력하고 각각의 틀린문자들에 대한 8진수값을 출력한다.

 

 

 

 두파일 비교시 cmp명령에서 -l옵션을 사용하면 각각 다음과 같은 결과를 출력한다.

 

 

 

 

 

[root@sulinux ~]# cmp -l file1 file2

 9 111 151

10 116 156

11 125 165

12 130 170

[root@sulinux ~]#

 

 

 

 

첫번째 행에서 9 9번째 바이트, 즉 위치를 의미한다.

 

 

 

 그리고 111 file1 9번째 문자인 I(대문자) ASCII코드값이다.

 

 

 

 또한 151 file2 9번째 문자인 i(소문자) ASCII코드값이다.

 

 

 

 

 

그 다음 행의 10 10번째 바이트, 즉 위치를 의미한다.

 

 

 

 그리고 116 file1 10번째 문자인 N(대문자) ASCII코드값을 의미한다.

 

 

 

 또한 156 file2 10번째 문자인 n(소문자) ASCII코드값을 각각 의미한다.

 

 

 

 

 

그 다음 행들의 의미도 이와 같은 의미이다.

 

 

 

 cmp명령어에서 -l옵션을 사용하면 두 파일의 차이점에 대한 자세한 상황을 파악할 수 있다.

 

 

 

 

 

참고로 cmp를 이용하여 두 파일 비교시에 틀린부분에 대한 결과를 출력하지 않도록 하려면 -s옵션을 사용한다.

 

 

 

 cmp에서 -s옵션을 사용하면 두파일에 다른 부분이 있다 하더라도 결과를 출력하지 않는다.

 

 

 

  단지 cmp의 실행결과 두개의 파일이 서로 같을 경우에 종료코드로 '0', 서로 다를 경우에 '1', 그리고 실행시 에러가 발생하였을 경우에는 2이상의 문자를 출력한다.

 

 

 

 

 

[root@sulinux ~]# cmp -s file1 file2

[root@sulinux ~]#

 

 

 

 

위와 같이 cmp명령의 결과 메시지를 출력하지 않도록하려면 -s옵션을 사용한다.

 

 

 

 

 

 

그리고 이번에는 두 파일 비교시 처음부터 지정된 위치까지는 무시하고 비교하는 예이다.

 

 

 

 cmp에서 -i옵션을 사용하면 cmp로 두개의 파일을 비교할 때에 처음부터 모든 문자를 비교하는 것이 아니라 첫번째 바이트부터 지정된 바이트까지는 비교대상에서 제외하고 나머지만 비교할 수 있다.

 

 

 

  

 

[root@sulinux ~]# cmp -i 1 file1 file2

file1 file2 differ: byte 8, line 1

[root@sulinux ~]#

 

 

 

 

위의 예는 file1과 파일2를 비교하면서 첫번째 바이트는 무시하고 (없다고 여기고) 그 다음부터 비교하라는 의미이다.

 

 

 

 따라서 실제로는 9바이트에서 처음으로 다른 위치를 발견하였지만 첫번째 바이트는 비교대상에서 제외하라는 옵션(-i 1) 때문에 8바이트에서 처음으로 상이한 점이 발견되었다고 출력된 것이다.

 

 

 

 다음 예를 보자.

 

[root@sulinux ~]# cmp -i 8 file1 file2

file1 file2 differ: byte 1, line 1

[root@sulinux ~]#

 

 

 

 

위의 예는 8번째 바이트까지는 비교대상에서 제외하라는 의미이므로 첫번째 행의 첫번째 바이트에서 두 파일의 상이한 점이 발견되었다라는 결과를 출력한 것이다.

 

 

 

 지금까지의 비교 예들을 연결해서 보기 바란다.

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  90 명