Skip to content

Linux 기본명령어 diff #

Find similar titles

12회 업데이트 됨.

Edit
  • 최초 작성자
    Kyooyeol Lee
  • 최근 업데이트

Structured data

Category
Programming

리눅스 기본 명령어 - cmp, diff, diff3, comm #

리눅스에서 파일의 변경사항이나 내용을 비교하는 경우가 자주 발생하게 된다. 이때 눈으로 두 파일을 비교하는 것이 아니라 간단한 명령어로 내용을 비교할 수 있다. 두 파일을 비교하여 서른 다른 행을 찾아서 보여주는 명령어이다.

먼저 아래와 같이 세개의 파일에 각기 다른 내용이 있다고 가정한다면,

file1 file2 file3
apples apples oranges
oranges oranges walnuts
walnuts grapes chestnuts

이제 각 내용을 비교해보자.

cmp #

cmp는 compare의 약자로 말 그대로 비교해서 단순한 결과를 보여준다.

사용법 : cmp 옵션 file1 file2

먼저 cmp 명령어는 다음과 같이 사용한다. cmp file1 file2와 같이 비교할 두 개의 파일을 나열하면 된다.

$ cmp file1 file2
file1 file2 differ: char 16, line 3

그러면 위와 같이 두 파일의 다른 내용을 비교하여 결과를 보여준다. 즉 3번째 줄에서 문자열이 서로 다르다고 알려준다. diff 와 달리 두 파일의 내용을 비교해보고 처음으로 다른 부분이 나타나는 위치를 알려준다. 따라서 단순히 cmp는 내용이 서로 다른지 확인하는 용도이며 어떻게 다른지는 확인할 수가 없기 때문에 diff 명령어를 사용해야 된다. 단순히 두 파일이 같은지 다른지 비교해서 결과를 True/False 형태로 얻는다면 cmp가 훨씬 유용할 것이다.

$ cmp -l file1 file2
16 167 147
17 141 162
18 154 141
19 156 160
20 165 145
21 164 163
22 163  12
cmp: EOF on file2

diff #

diff는 differences의 약자로 두 파일 사이의 내용을 비교하는 명령어이다. cmp보다 diff 명령어가 보다 직관적이고 명확하게 결과를 알려준다. 실행결과 차이점이 없다면 0, 차이점이 있다면 1, 실행시 에러 상황이라면 2 이상의 값을 반환한다.

사용법 : diff 옵션 file1 file2 예를 들면 다음과 같다. diff file1 file2와 같이 사용하는데 각 비교파일명을 넣어주면 된다.

$ diff file1 file2
3c3
< walnuts
---
> grapes

위의 결과를 보면 두 라인이 서로 다른 내용을 보여주며 그 내용이 서로 상이하다고 알려준다.

$ diff -e file1 file2
3c
grapes
.

-e 옵션을 사용한다면 명령어 ed에서 인식할 수 있도록 만들어 주는데 두 파일의 내용을 어떻게 변환해야 할지를 알려준다. file1과 file2의 내용중에서 비교해보면 file2의 내용이 grapes로 변해 있다는 것을 알 수 있다.

diff3 #

사용법 : diff3 옵션 file1 file2 file3 cmp와 diff는 두 개의 파일의 내용을 비교할 수 있다. diff3 명령어를 사용하면 세 파일 사이의 차이점을 비교할 수 있다.

$ diff3 file1 file2 file3
====3
1:1c
2:1c
  apples
3:0a
====
1:3c
  walnuts
2:3c
  grapes
3:2,3c
  walnuts
  chestnuts

comm #

comm 명령어를 사용한다면 두 파일에서 공통적인 부분과 한쪽에만 있는 부분을 찾아 낼 수 있다. 아래의 경우처럼 두 파일을 입력한 경우를 보여준다. 사용법 : comm 옵션 file1 file2

$ comm file1 file2
               apples
               oranges
grapes
       walnuts

내용을 확인해보면 file1과 file2의 두 라인은 같고 세번째 라인에서 각각 grapes와 walnuts가 서로 다르게 위치한다는 내용을 바로 확인할 수 있다.

옵션에서 -1, -2, -3을 줄 수 있는데 다음과 같이 사용한다.

-1 : 두 파일을 비교하여 첫번째 파일과 다른 두번째 파일의 내용과 공통 부분 
-2 : 두번째 파일과 다른 부분의 첫번째 파일내용과 공통 부분 
-3 : 두 파일의 공통된 부분 제외한 나머지 즉 차이 부분

Suggested Pages #

0.0.1_20231010_1_v71