Linux에서 두 파일을 비교하는 방법

How Compare Two Files Linux



두 파일을 비교하고 차이점을 해독하려면 차이 사용. 이 가이드는 차이 두 파일의 차이점을 알아보기 위해 다양한 옵션이 있는 명령.

그래서, 어떻게 차이 명령이 실제로 작동합니까? 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 기반 도구도 있습니다.