Monday, May 29, 2006
텍스트 파일 비교 유틸리티 WinDiff 소개 (마이크로소프트; 프리웨어)
텍스트 파일을 다루다 보면, 파일을 비교해야 할 일이 많습니다. 일일이 눈으로 비교하면 실수할 수도 있고 힘들기 때문에, 파일 비교 유틸리티 Compare Utility 가 필수적입니다.
울트라에디트(UltraEdit)에 있는 파일 비교 기능을 다년간 사용해 왔지만, 몇 년 전부터 그것이 UltraCompare 라는 상용 프로그램으로 독립화되어 버리고, 이제는 데모 버전으로만 파일 비교 기능이 들어 있었습니다. 그리고 그 울트라컴페어(UltraCompare)라는 상용프로그램도 별로 좋지가 않았습니다.
공개 프로그램 중에서 찾아봤습니다.
유닉스/리눅스의 Diff 명령을, GUI로 구현한 것이 WinDiff 인데 무료이고 마이크로소프트에서 만든 것입니다. 그러나 일반에는 공개되지 않고 플랫폼SDK (Platform SDK) 안에 들어 있었습니다. 그래서 플랫폼SDK를 설치해서 그 안에서 WinDiff 파일들을 뽑아내어야 합니다. ※ 비주얼 스튜디오를 설치하신 분은 그 안에서 한번 찾아보시기 바랍니다.
GUtils.Dll
WinDiff.Exe
WinDiff.Hlp
위의 파일 3개만 있으면 됩니다. 위의 파일을 아무 폴더에 집어넣고 WinDiff.Exe 를 실행하면 됩니다.
디렉토리 비교도 할 수 있지만, 여기서는 파일 비교만 다루겠습니다. (이육사 시인의 시 '청포도'를 원본 파일로 삼았습니다.)
원본 파일을 0.txt
수정을 가한 파일을 1.txt
로 가정합니다.
File(파일)/Compare Files (파일 비교) 로 위의 두 파일을 불러옵니다.
만약 완전히 동일한 파일이라면 identical (동일) 이라고 나오며, 더 이상 비교할 수 없습니다.
다른 부분이 있는 파일이라면 빨간 글씨로 뭐라고 나옵니다. 그 빨간 글씨를 클릭하면 다음과 같이 비교가 됩니다:
클릭또는옆으로스크롤가능
자동으로, 비교된 결과가 나왔습니다
(원래의 폰트가 너무 작아서, 위의 스냅샷은 돋움체, 10포인트로 바꾸어 준 후 찍은 것입니다)
아까 원본 파일에 있던, "이육사"란 이름 앞에 있는 공백을, 수정한 파일에서는 모두 지웠었기 때문에, 원본에 있던 행이 현재 빨갛게 칠해져 있고, 새 파일의 행은 노랗게 표현되어 있습니다.*
아까 원본 파일에 있던, "하늘 밑 푸른 바다가 가슴을 열고" 하는 행을 지웠었기 때문에, 현재 빨갛게 칠해져 있습니다.
아까 원본 파일에 있던 "靑袍"라는 한자를 새 파일에서는 "청포"로 바꾸어 주었습니다. 치환된 행이 있다는 사실을 보여주고 있습니다.
아까 새 파일에, "(-_-)"라는 이모티콘을 추가했었습니다. 이육사 시인이 이모티콘을 썼을 리는 없겠지요. 노란색으로서 뭔가가 추가되었다는 표시를 해주고 있습니다.
즉, 파일의 삭제된 부분, 변경된 부분, 추가된 부분을 WinDiff 가 정확히 보여주고 있습니다.
* Options(옵션)/Ignore Blanks (공백 무시)에 체크하면, 공백(스페이스, 탭)의 변경을 무시할 수 있습니다.
물론 파일 비교 프로그램이란, 이런 간단한 파일을 비교할 때 쓰는 것이 아니라, 수백 수천 수만 줄짜리 복잡한 소스 코드 등의 변경 사항을 찾아내기 위해 사용하는 것입니다.
윈도우 안에도 FC 라는 파일 비교 명령이 있긴 있습니다. ("윈도우 도스창에서의, 파일 비교 명령은? ; 텍스트 파일 / 이진 파일 비교" 참고)
이것은 FC 로 위의 청포도라는 시를 비교한 것입니다:
그런데 FC 는 알아보기도 힘들고, 버그도 좀 있는 것 같고 해서 별로 쓰고 싶지 않습니다.
관련 게시물: 유닉스/리눅스(Linux)의, 파일 비교 명령: diff
울트라에디트(UltraEdit)에 있는 파일 비교 기능을 다년간 사용해 왔지만, 몇 년 전부터 그것이 UltraCompare 라는 상용 프로그램으로 독립화되어 버리고, 이제는 데모 버전으로만 파일 비교 기능이 들어 있었습니다. 그리고 그 울트라컴페어(UltraCompare)라는 상용프로그램도 별로 좋지가 않았습니다.
공개 프로그램 중에서 찾아봤습니다.
유닉스/리눅스의 Diff 명령을, GUI로 구현한 것이 WinDiff 인데 무료이고 마이크로소프트에서 만든 것입니다. 그러나 일반에는 공개되지 않고 플랫폼SDK (Platform SDK) 안에 들어 있었습니다. 그래서 플랫폼SDK를 설치해서 그 안에서 WinDiff 파일들을 뽑아내어야 합니다. ※ 비주얼 스튜디오를 설치하신 분은 그 안에서 한번 찾아보시기 바랍니다.
GUtils.Dll
WinDiff.Exe
WinDiff.Hlp
위의 파일 3개만 있으면 됩니다. 위의 파일을 아무 폴더에 집어넣고 WinDiff.Exe 를 실행하면 됩니다.
WinDiff 로 파일 비교 실습
디렉토리 비교도 할 수 있지만, 여기서는 파일 비교만 다루겠습니다. (이육사 시인의 시 '청포도'를 원본 파일로 삼았습니다.)
원본 파일을 0.txt
수정을 가한 파일을 1.txt
로 가정합니다.
File(파일)/Compare Files (파일 비교) 로 위의 두 파일을 불러옵니다.
만약 완전히 동일한 파일이라면 identical (동일) 이라고 나오며, 더 이상 비교할 수 없습니다.
다른 부분이 있는 파일이라면 빨간 글씨로 뭐라고 나옵니다. 그 빨간 글씨를 클릭하면 다음과 같이 비교가 됩니다:
클릭또는옆으로스크롤가능
자동으로, 비교된 결과가 나왔습니다
(원래의 폰트가 너무 작아서, 위의 스냅샷은 돋움체, 10포인트로 바꾸어 준 후 찍은 것입니다)
아까 원본 파일에 있던, "이육사"란 이름 앞에 있는 공백을, 수정한 파일에서는 모두 지웠었기 때문에, 원본에 있던 행이 현재 빨갛게 칠해져 있고, 새 파일의 행은 노랗게 표현되어 있습니다.*
아까 원본 파일에 있던, "하늘 밑 푸른 바다가 가슴을 열고" 하는 행을 지웠었기 때문에, 현재 빨갛게 칠해져 있습니다.
아까 원본 파일에 있던 "靑袍"라는 한자를 새 파일에서는 "청포"로 바꾸어 주었습니다. 치환된 행이 있다는 사실을 보여주고 있습니다.
아까 새 파일에, "(-_-)"라는 이모티콘을 추가했었습니다. 이육사 시인이 이모티콘을 썼을 리는 없겠지요. 노란색으로서 뭔가가 추가되었다는 표시를 해주고 있습니다.
즉, 파일의 삭제된 부분, 변경된 부분, 추가된 부분을 WinDiff 가 정확히 보여주고 있습니다.
* Options(옵션)/Ignore Blanks (공백 무시)에 체크하면, 공백(스페이스, 탭)의 변경을 무시할 수 있습니다.
물론 파일 비교 프로그램이란, 이런 간단한 파일을 비교할 때 쓰는 것이 아니라, 수백 수천 수만 줄짜리 복잡한 소스 코드 등의 변경 사항을 찾아내기 위해 사용하는 것입니다.
윈도우의 FC 명령으로 파일 비교
윈도우 안에도 FC 라는 파일 비교 명령이 있긴 있습니다. ("윈도우 도스창에서의, 파일 비교 명령은? ; 텍스트 파일 / 이진 파일 비교" 참고)
이것은 FC 로 위의 청포도라는 시를 비교한 것입니다:
D:\Z>fc 0.txt 1.txt
파일을 비교합니다: 0.txt - 1.TXT
***** 0.txt
이육사
***** 1.TXT
이육사
*****
***** 0.txt
하늘 밑 푸른 바다가 가슴을 열고
흰 돛단배가 곱게 밀려서 오면,
***** 1.TXT
흰 돛단배가 곱게 밀려서 오면,
*****
***** 0.txt
내가 바라는 손님은 고달픈 몸으로
靑袍를 입고 찾아온다고 했으니
***** 1.TXT
내가 바라는 손님은 고달픈 몸으로
청포를 입고 찾아온다고 했으니
*****
***** 0.txt
아이야, 우리 식탁엔 은쟁반에
하이얀 모시 수건을 마련해 두렴
***** 1.TXT
아이야, 우리 식탁엔 은쟁반에
(-_-)
하이얀 모시 수건을 마련해 두렴
*****
D:\Z>
파일을 비교합니다: 0.txt - 1.TXT
***** 0.txt
이육사
***** 1.TXT
이육사
*****
***** 0.txt
하늘 밑 푸른 바다가 가슴을 열고
흰 돛단배가 곱게 밀려서 오면,
***** 1.TXT
흰 돛단배가 곱게 밀려서 오면,
*****
***** 0.txt
내가 바라는 손님은 고달픈 몸으로
靑袍를 입고 찾아온다고 했으니
***** 1.TXT
내가 바라는 손님은 고달픈 몸으로
청포를 입고 찾아온다고 했으니
*****
***** 0.txt
아이야, 우리 식탁엔 은쟁반에
하이얀 모시 수건을 마련해 두렴
***** 1.TXT
아이야, 우리 식탁엔 은쟁반에
(-_-)
하이얀 모시 수건을 마련해 두렴
*****
D:\Z>
그런데 FC 는 알아보기도 힘들고, 버그도 좀 있는 것 같고 해서 별로 쓰고 싶지 않습니다.
관련 게시물: 유닉스/리눅스(Linux)의, 파일 비교 명령: diff
tag: software
소프트웨어 Software | 유틸리티 Utility
<< Home