diff
리눅스 기본 명령어 중 하나로, 파일을 한 줄씩 비교하여 출력한다.
출력 값이 없으면 두 파일이 동일하다는 의미이다.
3개의 파일을 한 번에 비교하고 싶다면 diff3 명령을 사용할 수 있다.
명령어
일반적으로 기준이 되는 파일을 먼저 나열한다.
diff [OPTION]... FILES
# 예시
diff old.txt new.txt
예시)
3번째 줄과 5번째 줄이 변경된 것을 알 수 있다. <로 시작하는 행은 old.txt의 내용이고 > 로 시작하는 행은 new.txt의 내용이다.
즉, fff가 fox로 변경되고, tiger라는 문자열이 추가된 것을 확인할 수 있다.
아무런 옵션 없이 사용하면 변경된 내용만을 확인할 수 있는데, -u 옵션을 사용하면 변경된 내용과 변경되지 않은 내용을 한 번에 확인할 수 있다.
diff -u FILES
# -u : --unified. 변경점과 미변경점을 통합하여 출력
# 예시
diff -u old.txt new.txt
빠진 내용은 -으로, 추가된 내용을 +로 표시된다. git diff 명령의 출력과 유사하다.
출력 결과가 한 열(column)으로 나와 가독성이 좋지 않다면, 아래와 같이 두 열로 출력하게끔 할 수도 있다.
diff --side-by-side FILES
# -y : --side-by-side. 두 열로 출력
# 예시
diff -y old.txt new.txt
diff -y old.txt new.txt | cat -n # 줄 번호 표시
그 외 옵션
대소문자, 탭 문자, 공백 차이를 무시하고 싶다면 아래의 목록을 참고하여 적절히 옵션을 추가하도록 한다.
-i, --ignore-case ignore case differences in file contents
-b, --ignore-space-change ignore changes in the amount of white space
-w, --ignore-all-space ignore all white space
-E, --ignore-tab-expansion ignore changes due to tab expansion
-B, --ignore-blank-lines ignore changes where lines are all blank
-Z, --ignore-trailing-space ignore white space at line end
참고 문서