本文へスキップ

두파일 내용비교 : diff

MintState 2008年12月23日 20:22 閲覧 18955

두파일 내용비교 : diff

두 파일의 내용을 비교할때 diff 를 사용한다.
사용법은 아래와 같다
diff file1 file2

이것은 두 파일의 각 줄별로 비교해서 그 차이점을 표준 출력으로 보여준다.
두 파일이 완벽히 일치한다면 아무런 내용도 보여주지 않고 다시 프롬프트가나타난다.
출력결과를 보여주는 양식은 먼저 숫자들이 나오고,
a(추가),d(삭제),c(바뀜) 문자들 중 하나가 나오고 다음 또 숫자들이 나오는 한행과 그 다음 줄부터
그 숫자와 문자가 뜻하는 실제 내요을 기호화 |,<,>를 사용해서 보여준다.

| --> 줄의 내용이 다르다 
> --> file2에만 있는경우 
< --> file1에만 있는경우

 

두개의 파일을 비교한 예:

   diff email addresses 
   2a3,4 
   > Jean JRS@pollux.ucs.co 
   > Jim  jim@frolix8

 

이것은 email 파일과 addresses라는 두파일의 내용을 서로 비교한 명령과 그 결과입니다.
분석해보면 2행 다음부터 3,4행이 추가 되었고 ,addresses파일의 3,4행이 추가되었다.
실제 파일의 내용은 아래와 같다

email                          addresses 
1 John erpl08@ed               1 John erpl08@ed 
2 Joe  CZT@cern.ch             2 Joe  CZT@cern.ch 
3 Kim  ks@x.co                 3 Jean JRS@pollux.ucs.co 
4 Keith keith@festival         4 Jim  jim@frolix8 
                               5 Kim  ks@x.co 
                               6 Keith keith@festival 

  

공백문자와 대소문자를 구분하지 않을경우

diff -iw file1 file2 

 

이것은 두파일을 비교해서 단어 사이의 공백 문자가 있는 차이와 대소 문자를 구분하지 않고 서로 비교합니다.

Keith keith@festival 
KEITH      Keith@Festival 

 
위 두 줄은 같은 줄로 처리한다.

* 디렉토리비교

diff dictory1 dictory2 

 
두 디렉토리의 내용을 비교할때 편리하다.두 디렉토리의 내용이 같을 경우 아무것도 나타내지않고 바로 프롴프트가 떨어진다. 아래는 두 파일을 비교한 예이다

[yunisj@ns yunisj]$ diff 1 rpm 
diff 1/1 rpm/1 
1,4d0 
< YUN 
< JANG 
< sung yun 
< 
Only in 1: 2 
Only in rpm: bind-9.1.3-4.i386.rpm 
Only in rpm: bind-devel-9.1.3-4.i386.rpm 
Only in rpm: bind-libs-9.1.3-4.i386.rpm 
Only in rpm: bind-static-9.1.3-4.i386.rpm 
Only in rpm: bind-utils-9.1.3-4.i386.rpm 
Only in rpm: openldap-2.0.11-8.i386.rpm 
Only in rpm: rpm-4.0-7x.i386.rpm 
[yunisj@ns yunisj]$ 

 

* 파일을 나란히 비교 : sdiff
sdiff는 비교되는 두 파일간의 차이점을 나란히 출력하는 명령이다. diff와 차이점은 두 파일이 옆으로 나란히 출력한다.

형식 : sdiff [옵션] 파일1 파일2

-------------------------------------------------------------------------------- 
옵션                    설명 
-------------------------------------------------------------------------------- 
-l                      두 파일에서 행이 같을 때는 왼쪽에만 출력한다. 
-s                      두 파일에서 같은 행은 출력하지 않는다. 
-------------------------------------------------------------------------------- 

※ 실행을 해보면 우측에 '|'가 나온다. 의미는 그 행이 서로 틀리다는 것을 뜻한다.

共有 X Facebook LINE QR コード

コメント 0 件

最初のコメントを書いてみましょう。