diff
텍스트 처리
쓰는 꼴
diff -u [old] [new]두 파일이 어디가 달라졌는지 보여 줍니다. patch와 코드 리뷰가 기대하는 꼴은 -u이고, 다르면 종료 코드가 1이라 set -e를 쓴 스크립트가 여기서 멈춥니다.
자주 쓰는 옵션
| 옵션 | 뜻 |
|---|---|
| -u | Unified output, the format patch and code review expect |
| -r | Compare two directory trees |
| -q | Only say whether the files differ |
| -w | Ignore all whitespace |
| -i | Ignore case |
| -N | Treat a missing file as empty, which patches need |
예시
diff -u old.conf new.conf > fix.patchWrites a patch file.
diff -rq dirA dirBLists which files differ between two trees.
diff <(sort a.txt) <(sort b.txt)Compares two files ignoring line order (bash).
파이프로 이어 쓰는 것이 본래 용도입니다. 한 명령이 다 하는 것보다 셋을 잇는 편이 짧습니다.
읽는 방법
- 대괄호 [ ]는 넣어도 되고 안 넣어도 되는 자리입니다.
- 점 셋 …은 여러 개를 이어 쓸 수 있다는 뜻입니다.
- 옵션은 대소문자를 가립니다 — -r과 -R이 다른 명령도 있습니다.
자주 묻는 것
Q. diff은 무엇을 하나요?
두 파일이 어디가 달라졌는지 보여 줍니다. patch와 코드 리뷰가 기대하는 꼴은 -u이고, 다르면 종료 코드가 1이라 set -e를 쓴 스크립트가 여기서 멈춥니다.
Q. 어떻게 치나요?
diff -u [old] [new] — 대괄호는 생략할 수 있는 자리입니다.
Q. 옵션은 몇 개나 자주 쓰나요?
여기 정리한 것은 6개입니다. 전체 목록은 man diff에 있습니다. 이 명령은 텍스트 처리 갈래입니다.
같이 보는 명령
man 페이지: man diff