그래서, 어떻게 차이 명령이 실제로 작동합니까? NS 차이 명령은 두 파일을 비교하고 두 파일 간의 차이점 목록을 출력합니다. 보다 정확하게는 두 번째 파일과 일치시키기 위해 첫 번째 파일에서 수정해야 하는 수정 목록을 생성합니다. NS 차이 이 명령은 프로그래머가 패치를 개발하기 위해 두 소스 코드 파일 간의 차이를 얻기 위해 사용하기도 합니다.
예제를 살펴보기 전에 파일의 순서가 매우 중요하다는 점에 유의하십시오. 왜냐하면 차이 명령은 파일의 순서에 따라 출력을 제공합니다.
Linux에서 diff 명령을 사용하여 파일을 비교하는 방법:
구문 차이 명령은 아래에 언급되어 있습니다.
$차이 [옵션] [파일1] [파일2]
먼저 두 개의 파일을 만듭니다. 이름으로 텍스트 파일을 만들고 있습니다. test_file_1.txt 그리고 test_file_2.txt . 다음 파일에는 약간의 차이가 있는 콘텐츠가 포함되어 있습니다.
이제 다음 명령을 사용하여 차이점을 확인하십시오.
$차이test_file_1.txt test_file_2.txt
표준 출력은 명령에 언급된 파일의 순서에 따라 일치하는 행을 표시했습니다. 따라서 출력을 디코딩해 보겠습니다.
파일 비교에 레이블이 지정되어 있으며 각 레이블에는 양쪽에 숫자가 있습니다. 형식은 다음과 같습니다.
[파일 1의 줄 번호][Label(a,c,d)][파일 2의 줄 번호]
세 가지 레이블이 있습니다.
- 에게 – 추가: 첫 번째 파일에 콘텐츠를 추가하여 두 번째 파일과 동기화합니다.
- 씨 – 변경: 첫 번째 파일의 내용이 두 번째 파일과 일치하도록 수정이 필요함을 나타냅니다.
- NS – 삭제: 첫 번째 파일에서 두 번째 파일과 일치하는 내용을 제거합니다.
2d1 첫 번째 파일의 줄 번호 2를 삭제하여 줄 번호 1의 두 번째 파일과 일치하도록 나타냅니다.
비슷하게, 4c3 두 줄이 약간 다르기 때문에 첫 번째 파일의 네 번째 줄에서 두 번째 파일의 줄 번호 3과 일치하도록 변경하는 것을 의미합니다.
차이점을 보는 또 다른 방법이 있습니다. 차이 명령 -그리고 옵션:
$차이 -그리고 -에 60test_file_1.txt test_file_2.txt
위의 출력에서 내용은 test_file_1.txt 의 내용이 왼쪽에 표시되는 동안 text_file_2.txt 오른쪽에 표시됩니다. 차이점은 다음 기호로 표시됩니다.
- | — 두 번째 파일의 행이 다릅니다.
- > — 두 번째 파일에 행이 추가됨
- <— Line has been deleted from the second file
-W는 두 파일의 내용 사이의 너비를 나타냅니다. 별도로 얻고 차이점을 보려면 다음을 사용하십시오.
$차이 -그리고 -에 60 --suppress-common-linestest_file_1.txt test_file_2.txt
diff 명령을 사용하여 한 줄로 출력을 얻는 방법:
레이블이 지정된 방법이 디코딩하기 어려운 경우 더 간단한 방법이 있습니다. 사용 -NS 옵션 차이 명령은 한 줄에 출력을 제공합니다. 글쎄, 추가 정보 없이:
$차이 -NStest_file_1.txt test_file_2.txt
파일이 다른 경우 위의 명령이 출력을 제공합니다. 파일이 동일하면 출력이 없습니다. 그것을 보여주기 위해 나는 사본을 만들고 있습니다. test_file_1.txt 사용:
$cptest_file_1.txt test_file_3.txt
이름으로 새 파일이 생성됩니다. test_file_3.txt 동일한 내용을 포함하는 test_file_1.txt 가지다. 이제 다음을 사용하십시오.
$차이 -NStest_file_1.txt test_file_2.txt
따라서 두 파일의 내용이 비슷하므로 출력이 없습니다.
diff 명령을 사용하여 컨텍스트 모드에서 파일의 차이를 확인하는 방법:
컨텍스트 모드에서 비교를 얻으려면 -씨 옵션은 다음과 함께 사용됩니다. 차이 명령:
$차이 -씨test_file_1.txt test_file_2.txt
출력을 분석해 보겠습니다.
차이점을 유지하기 위해 첫 번째 파일은 생성 날짜 및 시간과 함께 ***로 표시되고 두 번째 파일은 —로 표시됩니다.
다음 라인은 비교 중에 고려되는 라인의 범위를 나타냅니다. 첫 번째 파일의 경우 *** 1.6 **** 두 번째 파일의 경우 —1.5—- :
차이점은 다음 기호로 표시됩니다.
- + : 첫 번째 파일에 줄이 없습니다. 첫 번째 파일에 삽입하거나 두 번째 파일에서 제거하여 두 파일과 일치하도록 합니다.
- – : 행이 첫 번째 파일에는 있지만 두 번째 파일에는 없습니다. 두 번째 파일에 삽입하거나 첫 번째 파일에서 제거하여 두 파일과 일치하도록 하십시오.
- ! : 라인이 일치하려면 수정이 필요합니다.
diff 명령을 사용하여 통합 모드에서 파일의 차이를 확인하는 방법:
통합 모드는 컨텍스트 모드와 매우 유사하지만 중복 정보가 없습니다. 우리가 사용하는 깃발은 -유 :
$차이 -유test_file_1.txt test_file_2.txt
출력에서 첫 번째 파일은 —로 표시되고 두 번째 파일은 ++로 표시됩니다. 두 번째 줄은 두 파일에서 비교를 위해 고려되는 줄 수를 보여주고, 그 다음에는 삭제, 추가 또는 수정될 내용이 포함된 기호로 표시됩니다. 두 파일에 유사한 행이 있는 기호는 없습니다.
diff 명령을 사용하는 동안 대소문자 구분을 무시하는 방법:
대소문자 구분을 무시하고 파일을 비교하려면 다음을 사용하십시오. -NS 깃발:
$차이 -NStest_file_1.txt test_file_2.txt시연을 위해 내가 만든 NS NS 디핀 첫 번째 파일에서 small:
첫 번째 명령에서 볼 수 있듯이 차이점이 표시됩니다. 사용하는 동안 -NS 그 차이가 제거되었습니다.
기타 유용한 옵션 차이 명령은 다음과 같습니다.
옵션 | 설명 |
---|---|
-에게 | 이 옵션은 모든 파일을 텍스트 파일로 취급합니다. |
-NS | 행이 모두 비어 있는 수정을 무시합니다. |
-그리고 | 이 옵션은 탭 확장을 무시합니다. |
-NS | 모든 줄이 일치하는 변경 사항을 무시합니다. |
-NS | 두 파일이 동일한 경우 출력을 제공합니다. |
-에 | 모든 공백을 무시합니다. |
-와 함께 | 줄 끝의 공백을 무시합니다. |
Vim 편집기를 사용하여 두 파일을 비교하는 방법:
두 파일을 비교하는 또 다른 방법은 빔디프 명령. 이를 위해서는 vim이 설치되어 있어야 합니다.
$수도적절한설치 내가왔다
이제 두 파일을 비교하려면 다음을 사용하십시오.
$vimdiff test_file_1.txt test_file_2.txt
두 파일이 나란히 열립니다. 일치하지 않는 부분은 강조 표시됩니다.
colordiff를 사용하여 두 파일을 비교하는 방법:
또 다른 접근 방식은 일종의 확장입니다. 차이 명령. 색상을 추가하여 비교를 보다 쉽게 식별할 수 있습니다. 설치하려면 다음을 사용하십시오.
$수도적절한설치컬러 디프
파일을 비교하려면 다음을 사용하십시오.
$colordiff test_file_1.txt test_file_2.txt
당신은 교체할 수 있습니다 차이 ~와 함께 컬러 디프 의 표준 출력을 얻으려면 차이 컬러 형식의 명령.
결론:
Linux 및 macOS에서 파일을 비교하기 위해 사용되는 유틸리티를 diff라고 합니다. diff 유틸리티는 두 파일을 비교하고 두 파일 간의 차이점에 대한 정보를 제공합니다. 개발자는 주로 diff 명령을 사용하여 패치 파일을 만듭니다.
이 가이드에서 우리는 철저하게 논의했습니다 차이 명령 및 이를 사용하여 다른 옵션을 가진 두 파일을 비교하는 방법. 사용법도 배웠습니다 컬러 디프 파일 차이를 더 잘 알아볼 수 있도록 합니다. 그러나 터미널 기반 유틸리티를 사용하기 어렵다면 Kompare, DiffMerge, Meld — Diff 도구 및 Diffuse — GUI Giff 도구와 같은 일부 GUI 기반 도구도 있습니다.