[Linux/리눅스] diff | cmp | comm - 파일 내용 비교

코코._.

·

2021. 6. 14. 09:51

728x90

업무 중, 어떠한 소스코드에서 일부분만 수정하여 적용을 했는데, 예상치 못한 부분에서 에러가 발생하게 될 경우, 두 파일의 코드 비교를 통해 어떤 부분에서 문제가 생겼는지 확인이 필요한 경우가 있다. 그럴 경우 파일 내용을 비교해주는 리눅스 명령어를 사용하면 편리하다.



1. diff
diff 명령어는 파일 간의 내용을 비교해주는 명령어이다. 최대 3개의 파일까지 비교가 가능하다.
두 개의 파일을 행 단위로 비교하여 차이점을 출력한다. 두 파일의 차이가 없다면 아무것도 출력하지 않는다.

[사용법]

2개 파일 비교할 때 : diff [옵션] [파일명1] [파일명2]
3개 파일 비교할 때 : diff3 [옵션] [파일명1] [파일명2] [파일명3]

[옵션]

-d 파일간의 차이점을 상세하게 출력
-i 대소문자 구분 없이 비교
-r 두 디렉토리 안에 있는 파일을 비교
-q 두 파일이 다를 때 알림
-s 두 파일이 같을 때 알림
-y 파일간의 차이를 양 옆으로 나열하여 보여줌
-w 모든 공백과 탭을 무시

2. cmp

cmp 명령어는 두 개의 파일을 바이트(문자) 단위로 비교하여 출력하는 명령어이다.

[사용법]

cmp [옵션] [파일명1] [파일명2]

[옵션]

-b 두 파일간의 다른 바이트를 출력
-i 바이트를 지정하여 그 뒤부터 비교
-l 두 파일간의 다른 문자 위치와 문자를 출력
-n 바이트를 지정하여 거기까지 비교
-s 종료 상태값만을 출력 (0 : 파일이 같음 / 1 : 파일이 다름 / 2 : 파일에 접근 불가)

3. comm

comm 명령어는 두 개의 파일을 줄 단위로 비교하여 출력하는 명령어이다.

[사용법]

comm [옵션] [파일명1] [파일명2]

[옵션]

-1 파일1에만 있는 내용은 출력하지 않음
-2 파일2에만 있는 내용은 출력하지 않음
-3 파일1과 파일2에 모두 존재하는 라인은 출력하지 않음
300x250

'프로그래밍 > Linux' 카테고리의 다른 글

[Linux/리눅스]grep, egrep, fgrep, find - 파일 찾기  (1) 2021.06.16