본문 바로가기

공부기록/etc

[linux] diff 명령어 -u 옵션 결과 해석하기

diff [옵션] file1 file2 

파일을 줄 단위로 비교한다.

 

-u 옵션 

unified context. 정형화된 output을 보여줘 차이점을 보기좋게 출력해준다. 이 옵션의 출력결과는 patch 명령어의 input으로 사용되기도 한다.

 

예시

다음과 같이 file01.txt file02.txt 두개의 파일이 있다.

파일을 보면 3, 7번째 줄이 서로 다르고, file02 에는 8번째 줄이 추가 되었다.

 

-u옵션으로 두 파일을 비교해보자 

diff -u file01.txt file02.txt

결과

@@ -1,7 +1,8 @@

출력된 결과의 위치를 나타낸다.

-1,7은 첫줄의 ---로 시작하는 파일(file01.txt)의 1번째줄부터 7개의 줄이라는 것을 의미한다.

+1,8은 두번째줄의 +++로 시작하는 줄의 파일(file02.txt)의 1번째줄부터 8개의 줄이라는 것을 의미한다.

 

-london

+SYDNEY

=> 첫번째 파일에서 london을 빼고 SYDNEY를 넣으면 첫번째 파일과 두번째 파일이 같아질 것이다.

즉, - 기호는 두번째 파일에서 빠진것, +는 두번째 파일에서 추가된 것을 의미한다.

기호가 붙어있지 않은 줄은 두 파일의 내용이 같다는 의미이다.


-U [NUM] 옵션

두 파일의 다른 부분 근처로 몇 줄까지 출력할 것인지를 NUM으로 명시해준다. 생략할 경우 NUM=3이다.

 

따라서 다음과 같이 NUM=0으로 옵션을 주면, 두 파일의 내용이 다른 줄만 출력된다.

diff -U 0 file01.txt file02.txt

결과

@@ -3 +3 @@

출력된 행의 위치를 알려주는 것이기 때문에, 다른 줄이 3번째 행이라는 것을 알 수 있다.

@@ -7 +7,2 @@

첫번째 파일에선 7번째줄.

두번째 파일에선 7번째줄 부터 2개의 줄.

'공부기록 > etc' 카테고리의 다른 글

git 명령어 cheat sheet  (0) 2021.07.06