Linux에서 파일을 한 줄씩 비교하는 방법 | diff 명령

Linux에서 파일을 한 줄씩 비교하는 방법 | diff 명령

Linux 세계에서 파일 관리 및 비교는 시스템 관리자와 개발자 모두에게 공통된 작업입니다. 파일을 한 줄씩 비교하는 기능은 차이점을 식별하고, 코드를 디버깅하고, 데이터 무결성을 보장하는 데 매우 중요합니다. 이 프로세스를 용이하게 하는 강력한 도구 중 하나는 diff> 명령. 이번 글에서는 사용법을 알아보겠습니다. diff> Linux에서 파일을 한 줄씩 비교하는 명령입니다.

내용의 테이블

diff 명령 이해

diff는 다음을 의미합니다. 차이점 .그만큼 diff> 명령은 대부분의 Linux 배포판에 사전 설치된 다목적 유틸리티입니다. 주요 목적은 두 파일의 내용을 비교하고 차이점을 표시하는 것입니다. 이 명령은 변경 사항, 추가 및 삭제 사항을 명확하고 읽기 쉬운 형식으로 강조 표시하는 포괄적인 방법을 제공합니다.

이 명령은 파일을 한 줄씩 비교하여 파일의 차이점을 표시하는 데 사용됩니다. 다른 멤버들과는 다르게 cmp 그리고 통신 , 두 파일을 동일하게 만들기 위해 한 파일의 어떤 줄을 변경해야 하는지 알려줍니다.

기억해야 할 중요한 점은 차이점 특정을 사용 특수 기호 그리고 지침 두 파일을 동일하게 만드는 데 필요한 것입니다. 첫 번째 파일을 두 번째 파일과 일치하도록 변경하는 방법에 대한 지침을 알려줍니다.

diff 명령의 기본 구문

기본 구문은 diff> 명령은 다음과 같습니다:

diff [OPTION]... FILE1 FILE2 

여기서 ` FILE1`> 그리고` FILE2`> 비교하려는 두 파일입니다.

` OPTION`> 플래그를 사용하면 `의 동작을 사용자 정의할 수 있습니다. diff`> 명령.

diff 명령에서 사용 가능한 옵션

옵션

설명

-c> 또는 --context>

컨텍스트 모드의 출력 차이

-u> 또는 --unified>

통합 모드의 출력 차이(더 간결함)

-i> 또는 --ignore-case>

대소문자를 구분하지 않고 비교 수행

– 모든 공간 무시

줄을 비교할 때 공백을 무시합니다.

-짧은

파일이 다른지 여부만 출력하고 세부 정보는 출력하지 않습니다.

–재귀적

재귀적으로 디렉터리 비교

-y> 또는 --side-by-side>

출력을 병렬 형식으로 표시

Linux에서 파일을 한 줄씩 비교하는 방법의 실제 구현은 무엇입니까? :

두 파일 비교

Linux에서 파일을 한 줄씩 비교합니다.

이름이 있는 두 개의 파일이 있다고 가정해 보겠습니다. a.txt 그리고 b.txt 인도의 5개 주를 포함합니다.

cat a.txt cat b.txt 
cat 명령을 사용하여 파일 내용 표시

cat 명령을 사용하여 파일 내용 표시

이제 옵션 없이 diff 명령을 적용하면 다음과 같은 결과가 나타납니다.

diff a.txt b.txt 
리눅스에서 파일을 한 줄씩 비교하기

리눅스에서 파일을 한 줄씩 비교하기

이 출력이 무엇을 의미하는지 살펴보겠습니다. 첫 번째 줄은 차이점 출력에는 다음이 포함됩니다.

  • 첫 번째 파일에 해당하는 줄 번호,
  • 특별한 상징과
  • 두 번째 파일에 해당하는 줄 번호입니다.

우리의 경우처럼, 0a1 ~ 후에 라인 0(파일의 맨 처음에)을 추가해야 합니다. 타밀나두어 두 번째 파일 줄 번호 1과 일치시킵니다. 그런 다음 각 파일의 해당 줄이 앞에 기호가 있는지 알려줍니다.

  • 앞에 a가 있는 줄 < 첫 번째 파일의 줄입니다.
  • 앞에 오는 줄 > 두 번째 파일의 줄입니다.
  • 다음 줄에는 다음이 포함됩니다. 2,3c3 이는 첫 번째 파일의 라인 2에서 라인 3까지를 두 번째 파일의 라인 번호 3과 일치하도록 변경해야 함을 의미합니다. 그런 다음 위의 기호가 있는 행을 알려줍니다.
  • 세 개의 대시 (—) 파일 1과 파일 2의 행을 분리하기만 하면 됩니다.

두 파일을 동일하게 만드는 요약으로 먼저 추가하십시오. 타밀나두어 첫 번째 파일의 첫 번째 파일에서 첫 번째 파일의 라인 2와 3을 변경한 후 두 번째 파일의 라인 1과 일치합니다. 즉, 우타르프라데시 그리고 콜카타 두 번째 파일의 3번째 줄, 즉 안드라프라데시 . 그 후 첫 번째 파일의 5번째 줄을 변경합니다. 잠무카슈미르 두 번째 파일의 5번째 줄, 즉 우타르프라데시 .

diff 명령을 사용하여 파일에서 줄 삭제

다음과 같은 시나리오를 고려해보세요. diff> 행을 삭제해야 함을 나타냅니다. 두 개의 파일이 주어지면 a.txt> 그리고 b.txt> :

cat 명령을 사용하여 파일 내용 표시

cat 명령을 사용하여 파일 내용 표시

diff a.txt b.txt 
파일에서 줄 삭제

파일에서 줄 삭제

여기 위의 출력 3d2 첫 번째 파일의 세 번째 줄을 삭제한다는 의미입니다. 즉, 텔랑가나 그래서 두 파일 모두 동기화하다 2호선에서.

컨텍스트 모드에서 차이점 보기

컨텍스트 모드의 차이점을 보려면 -씨 옵션. 예를 들어 이것을 이해해 보겠습니다. 두 개의 파일이 있습니다. 파일1.txt 그리고 파일2.txt :

cat 명령을 사용하여 파일 내용 표시

cat 명령을 사용하여 파일 내용 표시

diff -c file1.txt file2.txt 
컨텍스트 모드의 차이점 보기

컨텍스트 모드의 차이점 보기

위 출력에서:

  • 첫 번째 파일은 `로 표시됩니다. ***`> , 두 번째 파일은 `로 표시됩니다. ---`> .
  • ` ***************`> 구분자 역할을 합니다.
  • 처음 두 줄은 파일 이름, 수정 날짜 및 수정 시간을 표시하여 파일 1과 파일 2에 대한 정보를 제공합니다.
  • 그 다음에는 별표 3개가 ` ***`> 다음에는 첫 번째 파일의 줄 범위(1~4줄)가 옵니다. 별표 4개` ****`> 다음에 오세요. 그러면 첫 번째 파일의 내용이 특정 표시와 함께 표시됩니다.
    • 행이 변경되지 않은 경우 두 개의 공백이 앞에 붙습니다.
    • 행을 변경해야 하는 경우 기호와 공백이 앞에 붙습니다. 기호는 다음을 나타냅니다.
      • `+`> : 동일한 결과를 위해 첫 번째 파일에 추가할 두 번째 파일의 줄입니다.
      • `-`> : 동일한 결과를 위해 삭제할 첫 번째 파일의 한 줄입니다.
  • 대시 3개 ` ---`> 다음에는 두 번째 파일의 줄 범위(1~4줄)가 쉼표로 구분되어 옵니다. 대시 4개` ----`> 따라가면 두 번째 파일의 내용이 표시됩니다.

통합 모드에서 차이점 보기

통합 모드의 차이점을 보려면 -안에 옵션. 컨텍스트 모드와 유사하지만 중복된 정보를 표시하지 않습니다. 또는 정보를 간결한 형태로 보여줍니다.

cat 명령을 사용하여 파일 내용 표시

cat 명령을 사용하여 파일 내용 표시

diff -u file1.txt file2.txt 
통합 모드의 차이점 보기

통합 모드의 차이점 보기

위 출력에서:

  • 첫 번째 파일은 `로 표시됩니다. ---`> , 두 번째 파일은 `로 표시됩니다. +++`> .
  • 처음 두 줄은 수정 날짜 및 시간을 포함하여 파일 1과 파일 2에 대한 정보를 제공합니다.
  • 그 후 ` @@ -1> `,`> 4 +1`> ,`> 4 @@`> 두 파일의 줄 범위를 나타냅니다. 이 경우 두 파일 모두에서 1~4행을 나타냅니다.
  • 다음 줄은 특정 표시가 있는 파일의 내용을 나타냅니다.
    • 변경되지 않은 줄은 접두사 없이 표시됩니다.
    • 삭제할 첫 번째 파일의 행 앞에는 -> .
    • 추가할 두 번째 파일의 행 앞에는 +> .

이 예에서 출력은 두 파일을 동일하게 만들려면 mv 및 comm이 포함된 줄을 첫 번째 파일에서 삭제해야 함을 나타냅니다( file1.txt> ), diff 및 comm이 포함된 행을 여기에 추가해야 합니다.

대소문자를 구분하지 않고 파일 간 비교

기본적으로 ` diff`> 대소문자를 구분합니다. 대소문자를 구분하지 않고 비교하려면 ` -i`> 옵션:

cat 명령을 사용하여 파일 내용 표시

cat 명령을 사용하여 파일 내용 표시

그만큼 diff> 그런 다음 명령을 사용하여 이러한 파일을 다음과 비교합니다. -i> 비교 시 대소문자를 구분하지 않는 옵션입니다.

diff -i file1.txt file2.txt 
대소문자를 구분하지 않음

대소문자를 구분하지 않음

  • 2d1> : 첫 번째 파일의 2번째 줄이 변경되었음을 나타냅니다( file1.txt> ). 그만큼 d> 삭제를 의미하며 첫 번째 파일에서 2번째 줄을 삭제하라는 내용입니다.
    • > : 이 줄은 삭제할 줄의 내용을 나타냅니다. 이 경우에는 mv입니다.
  • 3a3> : 첫 번째 파일의 3번째 줄에 추가 내용이 있음을 나타냅니다( file1.txt> ). 그만큼 a> add를 의미하며 위치 3에 줄을 추가하라는 내용입니다.
    • >차이점> : 이 줄은 추가할 내용을 나타냅니다. 이 경우에는 차이가 있습니다.

요약하자면, 출력은 두 파일을 동일하게 만들려면(대소문자 무시) 첫 번째 파일에서 mv가 포함된 줄을 삭제해야 함을 알려줍니다( file1.txt> ) 동일한 위치에 라인 diff를 추가합니다. 그만큼 diff> 명령을 사용하여 -i> 옵션을 사용하면 대소문자를 구분하지 않는 비교가 가능하므로 분석 중에 mv와 MV가 동일한 것으로 간주됩니다.

표시 diff> 버전

` 버전을 확인하려면 diff`> 시스템에 설치된 경우 ` --version`> 옵션:

diff --version 
diff 명령 버전 표시

diff 명령 버전 표시

이 명령은 `의 버전, 라이센스 및 작성자에 대한 정보를 제공합니다. diff`> 공익사업.

diff 명령에 대해 자주 묻는 질문 – FAQ

어떻게 사용하나요? diff> Linux에서 두 파일을 한 줄씩 비교하는 명령은 무엇입니까?

두 파일을 한 줄씩 비교하려면 diff> 명령을 실행하려면 다음 구문을 사용하면 됩니다.

diff file1.txt file2.txt 

이 명령은 추가, 삭제 및 수정 사항을 강조 표시하여 두 파일 간의 차이점을 표시합니다.

파일을 비교할 때 공백 차이를 무시할 수 있습니까? diff> 명령?

예, diff> 명령은 다음을 제공합니다 -w> 또는 --ignore-all-space> 공백 차이를 무시하는 옵션입니다. 예를 들어:

diff -w file1.txt file2.txt 

이는 들여쓰기나 간격 변경이 중요하지 않은 코드 파일을 비교할 때 특히 유용합니다.

다음을 사용하여 패치 파일을 만드는 방법은 무엇입니까? diff> 명령?

두 파일 간의 차이점을 나타내는 패치 파일을 만들려면 다음을 사용하십시오. -u> 옵션을 선택하고 출력을 파일로 리디렉션합니다.

diff -u file1.txt file2.txt>mypatch.패치 

생성된 패치 파일은 나중에 적용하여 다른 파일을 변경 사항과 동기화할 수 있습니다.

통합 형식은 무엇입니까? diff> 출력이며 컨텍스트 형식과 어떻게 다른가요?

통합 형식(` -u`> 옵션) ` diff`> 출력은 컨텍스트 형식(` -c`> 옵션). 변경 사항을 보다 간결한 형태로 표시하므로 파일 간의 수정 사항을 더 쉽게 이해할 수 있습니다.

Linux에서 두 디렉터리를 재귀적으로 비교하는 방법은 무엇입니까? diff> 명령?

두 디렉토리와 그 내용을 재귀적으로 비교하려면 ` -r`> 또는 ` --recursive`> 옵션이 있는 diff> 명령:

diff -r directory1/ directory2/ 

이 명령은 지정된 디렉터리의 모든 파일을 비교하고 차이점에 대한 자세한 정보를 제공합니다.

결론

Linux 세계에서 파일 비교는 시스템 관리자와 개발자의 일반적인 작업입니다. ` diff> 명령은 이 프로세스에 도움이 되는 편리한 도구입니다. 이 문서에서는 `를 사용하는 방법을 살펴봅니다. diff`> Linux에서 파일을 한 줄씩 비교합니다. 기본 구문, 컨텍스트 모드 및 통합 모드와 같은 중요한 옵션, 패치 파일 생성 및 디렉터리 재귀 비교와 같은 실제 응용 프로그램을 다룹니다. 코드를 디버깅하든 파일 무결성을 보장하든 ` diff`> Linux에서 효율적인 파일 관리를 위해서는 명령이 필수적입니다.