DIFF3(1) | General Commands Manual | DIFF3(1) |
이름¶
diff3 - 세 개의 파일들 사이에서 다른 점을 찾는다.
사용법¶
diff3 [-3aeimxAETX] [-L LABEL] [--easy-only] [--ed] [--initial-tab] [--label=LABEL] [--merge] [--overlap-only] [--show-all] [--show-overlap] [--text] MINE OLDER YOUR diff3 [-v] [--help] [--version]
설명¶
diff3는 세 개의 파일을 비교해서 다른 점을 출력한다. 비교되는 세 개의 파일은 MINE, OLDER, 그리고 YOURS이다. 세 파일 중 최대 한개는 `-' 가 될 수 있는데, 이것은 diff3에게 그 파일에 해당하는 내용을 표준 입력에서 읽어들이라는 뜻이다. 보통 diff3는 작업을 수행하기 위해 diff(1)를 호출한다. 하지만, DIFF 환경 변수를 수정해서 다른 프로그램을 사용할 수도 있다.
옵션¶
- -3, --easy-only
- 중첩되지 않는 변화만 출력하라는 점을 제외하고는 -e와 비슷하다.
- -a, --text
- 텍스트 파일이 아닌 것같이 보이더라도 모든 파일을 텍스트 파일로 취급하고, 이것들을 한줄 한줄씩 비교하게 한다.
- -e, --ed
- OLDER 를 기준으로 YOURS 와 다른 점을 MINE 에 적용시키기 위한 ed 스크립트를 만든다.
- -i
- System V 호환성을 위해 ed 스크립트 끝에 `w'와 `q' 명령을 추가한다. 이 옵션은 반드시 -AeExX3 옵션 중 하나와 함께 쓰여야 하며, -m 옵션과는 함께 쓰일 수 없다.
- -m, --merge
- 첫번째 파일에 edit 스크립트를 적용하고, 결과를 표준 출력으로 보낸다. diff3에서 ed로 파이핑하는 것과는 달리, 이 작업은 이진 파일이나 종결되지 않은 줄에 대해서도 동작한다. edit 스크립트 옵션이 지정되어 있지 않으면 -A 옵션으로 가정하고 수행한다.
- -x, --overlap-only
- -e 옵션과 비슷하지만, 중첩된 변화만을 출력한다.
- -A, --show-all
- OLDER 를 기준으로 YOURS 와의 차이점을 MINE 에 통합시킨다. 이때 모든 중첩된 변화는 괄호 줄로 묶어놓는다.
- -E, --show-overlap
- -e 옵션과
비슷하지만, 첫번째와
세번째 파일의 중첩된
차이점을 묶는 괄호
줄을 보여준다. -e
옵션과 같이 사용했을
때, 중첩된 차이점은
아래와 같은 형식으로
나온다.
<<<<<<< MINE lines from MINE ======= lines from YOURS >>>>>>> YOURS
- -L LABEL, --label=LABEL
- -A, -E, -X 옵션에서 사용되는 괄호 출력을 위해 LABEL 라벨을 사용한다. 이 옵션은 세개의 입력 파일에 대해 각각 한번씩 적용시켜야 한다. 기본 라벨은 입력 파일의 이름이다. 그래서 diff3 -L X -L Y -L Z -m A B C 명령은 diff3 -m A B C 명령과 같은 동작을 하지만, 출력에서 입력 파일의 이름이 A, B, C 대신 X, Y, Z로 붙게 된다.
- -T, --initial-tab
- 일반 형식에서 각 줄 앞에 두개의 빈칸 대신 탭을 출력한다. 이것은 각 줄을 탭으로 정렬하기 위해 사용된다.
- -X
- -E와 비슷하지만, 중첩된 변화만을 출력한다. 다른 말로, -x와 비슷하지만, -E 옵션에서처럼 차이점을 괄호로 묶는다.
- --help
- 사용법을 표준 출력에 보여주고, 종료한다.
- -v, --version
- diff3의 버전 정보를 출력한다.
출력 형식¶
각각의 차이를 나타내는 텍스트 블럭은 `===='로 표시된 줄로 시작한다. 세 파일의 차이를 나타내는 블럭에서는 단순한 `====' 갖고, 두 파일의 차이를 나타내는 블럭에서는 `1', 2', `3' 중 한쪽에 그 차이가 나는 파일을 나타내기 위해 추가된다. 각 블럭에는 2개, 또는 3개의 입력행 세트가 포함되어 각각의 행 세트가 어느 파일에서 나온 것인지 나타내는 1개 또는 2개의 명령어가 앞에 나오게 된다. 기본 동작에서는 입력행 앞에 2개의 빈칸이 붙어 명령어와 구별할 수 있게 되어 있다. `-T' 옵션이 설정되면, diff3는 빈칸 대신 탭을 사용하므로 입력에 있던 탭에 의한 자리수가 그대로 보존된다.
명령어 형식¶
- FILE:La
- 이 블럭은 FILE의 L 행 다음에 나타나야 할 것으로, 그 파일에는 존재하지 않는다. 이 파일을 수정해 다른 파일과 같게 하려면, 다른 파일에서 블럭을 가져와 추가해야 한다. 예를 들어 `1:11a'은 이 블럭은 첫번째 파일의 11 행 다음에 나와야 할 것으로 첫번째 파일에는 포함되지 않은 것 말한다.
- FILE:Rc
- 이 블럭에는 FILE의 행
범위 R이 포함되어
있다. 행 범위 R은 2
개의 행 번호를
쉼표로 단락지은
것이다. 숫자가
하나라면 한 줄
범위라고 해석된다.
이 파일을 편집해
다른 파일과 같게
하려면, 그 행 범위를
다른 파일로부터
가져와 변경해야
한다. 예를 들어, `2:11,13c'은
이 블럭이 두번째
파일의 11-13 행의 내용을
포함한다는 의미이다.
입력행 묶음의 마지막 행이 개행으로 끝나지 않은 경우는 출력의 다음 행이 `\'로 시작되므로 개행으로 끝나는 경우와 구별할 수 있다.
진단¶
diff3는 아래 값 중 하나를 반환하고 종료한다.
- 0
- diff3가 성공적으로 종료되었으며, 중첩된 변화(충돌)을 찾지 못했다.
- 1
- 충돌이 발견되었다.
- 2
- 오류가 발생했다.
관련 항목¶
주의¶
Report bugs to bug-gnu-utils@gnu.org. Page updated by Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com>
번역¶
한글 Manpage 프로젝트 (http://man.kldp.org) 2004년 3월 24일
October 2002 | GNU diff Utilities 2.8.1 |