두파일 비교의 진정한 달인 diff 3편: 3개의 파일을 비교할 수 있는 diff3 사용법
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,440 조회
- 0 추천
- 목록
본문
두파일 비교의 진정한 달인 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.i686긶OI?~~~runlevel2.6.27.5-117. fc10.i686긶OI? 쬹ts/1ts/1root192.168.0.155븏OI흅 윅쎬tty44LOGIN?wOI?ty55LOGIN?wOI?ty22LOGIN?wOI?ty33LOGIN?wOI?ty11LOGIN?wOI?ty66LOGIN? wOpts/0ts/0root192.168.0.155셷OI?윅썂ts/1B뾑IdM[ pts/1ts/1root192.168.0. 155F뾑Im牡쮿 \ 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.i686긶OI?~~~runlevel2.6.27.5-117. fc10.i686긶OI? 쬹ts/1ts/1root192.168.0.155븏OI흅 윅쎬tty44LOGIN?wOI?ty55LOGIN?wOI?ty22LOGIN?wOI?ty33LOGIN?wOI?ty11LOGIN?wOI?ty66LOGIN? wOpts/0ts/0root192.168.0.155셷OI?윅? \ No newline at end of file [root@sulinux log]# |
이번에는 --text옵션을 사용하여 텍스트파일이 아닌 바이너리 파일을 비교한 것이다.
그 결과 위의 수행 예와 같이 비록 텍스트파일이 아닌 바이너리파일들이지만 가능한 텍스트포맷을 찾아서 비교작업을 수행한다.
관련자료
-
이전
-
다음