두파일 내용비교 : 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 두 파일에서 같은 행은 출력하지 않는다.
--------------------------------------------------------------------------------
※ 실행을 해보면 우측에 '|'가 나온다. 의미는 그 행이 서로 틀리다는 것을 뜻한다.