표준 (오래된) 출력 형식은 파일이 다른 영역으로 텍스트를 둘러싸 지 않고 파일 간의 차이를 표시합니다.
예를 들어 : 1d0 <
(삭제)는의 첫 번째 줄에서 사과 를 제거해야 file1
하고 2a2 >
(추가) 는 두 번째 줄에 사과 를 추가해야 file2
하므로 두 파일을 모두 일치시킬 수 있음을 의미합니다.
info diff
자세한 내용 은 다음 문서를 참조하십시오.
컨텍스트없이 차이점 표시
"정상" diff
출력 형식은 주변 컨텍스트없이 각 차이를 보여줍니다. 때때로 이러한 출력은 근처의 변경되지 않은 행을 어지럽히 지 않고 행이 어떻게 변경되었는지 확인하는 가장 명확한 방법입니다 (0 행의 컨텍스트를 사용하여 컨텍스트 또는 통합 형식으로 유사한 결과를 얻을 수 있음). 그러나이 형식은 더 이상 패치를 보내는 데 널리 사용되지 않습니다. 이를 위해 컨텍스트 형식과 통합 형식이 우수합니다. 표준 형식은 이전 버전 diff
및 POSIX 표준과의 호환성을위한 기본값입니다 . --normal
이 출력 형식을 명시 적으로 선택하려면 옵션을 사용하십시오 .
일반 형식에 대한 자세한 설명
일반 출력 형식은 하나 이상의 차이로 구성됩니다. 각 덩어리는 파일이 다른 하나의 영역을 보여줍니다. 일반 형식 덩어리는 다음과 같습니다.
CHANGE-COMMAND
< FROM-FILE-LINE
< FROM-FILE-LINE...
---
> TO-FILE-LINE
> TO-FILE-LINE...
변경 명령에는 세 가지 유형이 있습니다. 각각은 첫 번째 파일의 줄 번호 또는 쉼표로 구분 된 줄 범위, 변경 종류를 나타내는 단일 문자 및 두 번째 파일의 줄 번호 또는 쉼표로 구분 된 줄 범위로 구성됩니다. 모든 줄 번호는 각 파일의 원래 줄 번호입니다. 변경 명령의 유형은 다음과 같습니다.
LaR
첫 번째 파일의 L 행 다음에 두 번째 파일의 R 범위에있는 행을 추가하십시오. 예를 들어, 8a12,15
파일 1의 8 행 다음에 파일 2의 12-15 행을 추가하는 것을 의미합니다. 또는 파일 2를 파일 1로 변경하는 경우 파일 2의 12-15 행을 삭제하십시오.
FcT
첫 번째 파일의 범위 F에있는 행을 두 번째 파일의 범위 T에있는 행으로 바꾸십시오. 이것은 결합 된 추가 및 삭제와 비슷하지만 더 컴팩트합니다. 예를 들어, 5,7c8,10
파일 1의 5-7 행을 변경하여 파일 2의 8-10 행으로 읽습니다. 또는 파일 2를 파일 1로 변경하는 경우 파일 2의 8-10 행을 변경하여 파일 1의 5-7 행으로 읽습니다.
RdL
첫 번째 파일에서 범위 R의 행을 삭제하십시오. L 행은 삭제되지 않은 두 번째 파일에 나타난 위치입니다. 예를 들어, 5,7d3
파일 1의 5-7 행을 삭제합니다. 또는 파일 2를 파일 1로 변경하는 경우 파일 2의 3 행 뒤에 파일 1의 5-7 행을 추가하십시오.
참조 :
따라서 오렌지를 보려면 나란히 또는 통합 된 컨텍스트를 사용하여 차이를 만들어야합니다.
예를 들면 다음과 같습니다.
$ diff -y file1 file2
apples <
oranges oranges
> apples
$ diff -u file1 file2
@@ -1,2 +1,2 @@
-apples
oranges
+apples
oranges
두 파일 사이의 공통 부분이 가장 크기 때문에 두 파일 간의 차이점을 표현하는 가장 짧은 방법입니다.