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

두파일 비교의 진정한 달인 diff 3편: 3개의 파일을 비교할 수 있는 diff3 사용법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

두파일 비교의 진정한 달인 diff 3: 3개의 파일을 비교할 수 있는 diff3 사용법

 

 

 

 

지금까지의 파일비교는 모두 2개의 파일을 대상으로 하였다.

 

 

 

 이에 비하여 diff3 3개의 파일차이점을 비교하여 출력하는 명령어이다.

 

 

 

 cmp명령어와 diff명령어가 두개의 파일을 비교하는 명령어라면 diff3은 세개의 파일 차이점을 비교할 수 있는 명령어이다.

 

 

 

 

 

diff3명령어의 설명을 위하여 다음과 같이 세개의 파일이 있다고 가정하겠다.

 

 

 

 

 

[root@sulinux ~]# cat file1

Linux is a Operating System.

 

I am a Linux Engineer.

[root@sulinux ~]#

[root@sulinux ~]# cat file2

Linux is a Operating System.

 

I am a Linux System Engineer.

[root@sulinux ~]#

[root@sulinux ~]# cat file3

Linux is a Operating System.

 

I am a Linux Engineer.

[root@sulinux ~]#

 

 

 

 

세개의 파일을 비교하는 예이다.

 

 

 

 아래의 예는 간단히 file1, file2, file3을 비교한 결과를 보인 것이다.

 

 

 

 

 

[root@sulinux ~]# diff3 file1 file2 file3

====2

1:3c

3:3c

  I am a Linux Engineer.

2:3c

  I am a Linux System Engineer.

[root@sulinux ~]#

 

 

 

다음 예는 모든 파일을 텍스트파일로 간주하여 3개의 파일을 비교한 예이다.

 

 

 

 diff3명령어에 --text옵션을 사용하면 세개의 파일비교시 텍스트파일이 아니더라도 텍스트파일로 간주하여 행과 행을 각각 비교하여 그 결과를 출력해준다.

 

 

 

 다음 예를 보자.

 

[root@sulinux log]# file wtmp wtmp2 wtmp3

wtmp:  data

wtmp2: data

wtmp3: data

[root@sulinux log]#

[root@sulinux log]# diff3 wtmp wtmp2 wtmp3

diff3: subsidiary program `diff' failed

[root@sulinux log]#

 

 

 

wtmp파일과 wtmp2파일 그리고 wtmp3 파일의 데이터형을 확인한 결과 모두 바이너리데이터(data)들이다.

 

 

 

 참고로 리눅스에서 파일타입을 확인할 때에는 위의 예와 같이 file이라는 명령어를 사용한다.

 

 

 

 따라서 text파일타입이 아니므로 일반적인 비교방법으로는 이 3개의 파일비교를 할 수 없다.

 

 

 

 위의 예에서 “diff wtmp wtmp2 wtmp3”의 명령수행 결과 수행실패(failed)라는 메시지를 출력하고 정상적으로 비교수행되지 않았다.

 

 

 

 

 

따라서 아래 예를보면 --text옵션을 사용하고있다.

 

 

 

 

 

[root@sulinux log]# diff3 --text wtmp wtmp2 wtmp3

====2

1:26c

3:26c

  윅썂ts/1ts/1root192.168.0.155TBNI}?3~~~runlevel2.6.27.5-117.fc10.i686?NI

                                                                             

?ts/0?NIpts/1?NI~~~reboot2.6.27.5-117.fc10.i686OI?~~~runlevel2.6.27.5-117.

fc10.i686OI?       ts/1ts/1root192.168.0.155OI       윅쎬tty44LOGIN?wOI?ty55LOGIN?wOI?ty22LOGIN?wOI?ty33LOGIN?wOI?ty11LOGIN?wOI?ty66LOGIN?

wOpts/0ts/0root192.168.0.155OI?윅썂ts/1BIdM[     pts/1ts/1root192.168.0.

155FIm牡쮿

\ No newline at end of file

2:26c

  윅썂ts/1ts/1root192.168.0.155TBNI}?3~~~runlevel2.6.27.5-117.fc10.i686?NI

                                                                             

?ts/0?NIpts/1?NI~~~reboot2.6.27.5-117.fc10.i686OI?~~~runlevel2.6.27.5-117.

fc10.i686OI?       ts/1ts/1root192.168.0.155OI       윅쎬tty44LOGIN?wOI?ty55LOGIN?wOI?ty22LOGIN?wOI?ty33LOGIN?wOI?ty11LOGIN?wOI?ty66LOGIN?

wOpts/0ts/0root192.168.0.155OI??

\ No newline at end of file

[root@sulinux log]#

 

 

 

이번에는 --text옵션을 사용하여 텍스트파일이 아닌 바이너리 파일을 비교한 것이다.

 

 

 

 그 결과 위의 수행 예와 같이 비록 텍스트파일이 아닌 바이너리파일들이지만 가능한 텍스트포맷을 찾아서 비교작업을 수행한다.

 

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,070 명
  • 현재 강좌수 :  35,986 개
  • 현재 접속자 :  392 명