diff Output Formats                      안오균
diff$ diff foo bar• 두 파일을 라인 단위로 비교한다.• diff <원본 파일> <새 파일>
diff Output Formats• diff의 대표적인 출력 포맷은 다음과 같다.  – Normal Format  – Context Format  – Unified Format
Normal Format$ diff foo bar• diff의 기본 출력 옵션으로,• 두 파일의 변경된 라인만 출력한다.• 변경된 부분을 명확하게 파악할 수 있지만,  변경된 라인 주변의 데이터 파악이 어렵다.
예제 텍스트<원본 파일:foo>   <새 파일:bar>1 Hello,      1 Hello,2 I am foo.   2 I am bar.3 a           3 a4 b           4 c5 c        ...
Normal Format: 출력 예제$ diff foo bar2c2< I am foo.---> I am bar.4d3< b7a7,8> f> g
Normal Format: 출력 형태• 변경 상태를 나타내는 키워드 이후에,  원본 파일과 새 파일의 라인을 번갈아 출력한다. 변경 키워드 < 원본 파일 라인 < 원본 파일 라인... --- > 새 파일 라인 > 새 파...
Normal Format: 변경 키워드• 변경 키워드는 변경의 상태를 나타내는 것으로,  추가/삭제/변경을 의미하는 a,d,c가 있다. a : 추가(added) d : 삭제(deleted) c : 변경(changed)
Normal Format: added추가됨(added)형태: (1)a[2]예제: 7a7,8의미: 원본 파일의 (1)라인 이후에, 새 파일의 범위 [2]만큼의 라인이 추가됨.
Normal Format: changed변경됨(changed)형태: [1]c[2]예제: 5,7c8,10의미: 원본 파일의 범위 [1]만큼의 라인이, 새 파일의 범위 [2]만큼의 라인으로 변경됨.
Normal Format: deleted삭제됨(deleted)형태: [1]d(2)예제: 5,7d3의미: 원본 파일의 범위 [1]만큼의 라인이 삭제됨. 새 파일의 (2)라인에 해당함.
Normal Format: 출력 예제(상세)$ diff foo bar2c2 # 원본 파일의 2라인이 새 파일의 2라인으로 변경됨< I am foo. # 원본 파일 라인(삭제됨)---> I am bar. # 새 파일 라인...
Context Format$ diff -c foo bar• `-c` 옵션을 사용하며,  변경된 라인 전/후의 라인을 함께 출력한다.• 변경된 라인의 주변을 확인할 수 있기 때문에,  정확하게 어떤 것이 변경되었는지 파악...
예제 텍스트<원본 파일:foo>   <새 파일:bar>1 Hello,      1 Hello,2 I am foo.   2 I am bar.3 a           3 a4 b           4 c5 c        ...
Context Format: 출력 예제$ diff -c foo bar    (좌측에서 계속)*** foo 2013-01-29   --- 1,8 ------- bar 2013-01-29     Hello,*********...
Context Format: 출력 예제$ diff -C 1 foo bar   (좌측에서 계속)*** foo 2013-01-29    ! I am bar,--- bar 2013-01-29      a************...
Context Format: 출력 형태• 각 파일의 이름과 수정시각을 나타내는 헤더 이후에,  각 파일에서 변경된 라인 부분을 출력한다.• 옵션으로 넘긴 라인수만큼(기본 3개),  변경된 라인의 전/후 라인도 함께 출력...
Context Format: 변경 키워드• 각 파일에서 변경된 라인은,  변경 키워드와 공백 이후에 출력된다.  변경되지 않은 라인은 2개의 공백 이후 출력한다.• 변경    키워드는 다음과 같다.  ! :   변경됨 ...
Context Format: 출력 예제(상세)$ diff -c foo bar*** foo 2013-01-29 # 원본 파일의 이름과 수정 시각--- bar 2013-01-29 # 새 파일의 이름과 수정 시각*******...
Context Format: 출력 예제(상세)(이전 페이지에서 계속)--- 1,8 ----  Hello,! I am bar, # 변경된 라인  a  c # 변경된 라인 전/후로 3라인이 여기까지 겹치므로,  d # 모두...
Context Format: 출력 예제(상세)$ diff -C 1 foo bar # 주변 라인 1개까지만 출력한다.*** foo 2013-01-29--- bar 2013-01-29****************** 1,5...
Context Format: 출력 예제(상세)(이전 페이지에서 계속)! I am bar,  a  c****************** 7 **** # 주변 라인을 1개만 출력하면 변경 부분이--- 6,8 ---- # 겹치...
Unified Format$ diff -u foo bar• `-u` 옵션을 사용하며,  `-U 라인수`, `--unified[=라인수]` 옵션으로  주변 라인 개수를 설정할 수 있다.• Context Format과 비슷...
예제 텍스트<원본 파일:foo>   <새 파일:bar>1 Hello,      1 Hello,2 I am foo.   2 I am bar.3 a           3 a4 b           4 c5 c        ...
Unified Format: 출력 예제$ diff -u foo bar    (좌측에서 계속)--- foo 2013-01-29   +f+++ bar 2013-01-29   +g@@ -1,7 +1,8 @@ Hello,-I ...
Unified Format: 출력 예제$ diff -U 1 foo bar   (좌측에서 계속)--- foo 2013-01-29    +f+++ bar 2013-01-29    +g@@ -1,5 +1,4 @@ Hello,...
Unified Format: 출력 형태• 각 파일의 이름과 수정시각을 나타내는 헤더 이후에,  두 파일의 변경 부분을 함께 출력한다.• 변경 부분의 시작에는 각 파일의 변경 범위를 출력하고,  이후에 각 라인이 출력된다...
Unified Format: 변경 키워드• 출력되는 각 라인은,  변경된 경우 변경 키워드로 시작하고,  변경되지 않은 경우 공백으로 시작한다.• 변경 키워드는 다음과 같다.  + : 새 파일에 추가됨  - : 원본 파...
Unified Format: 출력 예제(상세)$ diff -u foo bar--- foo 2013-01-29+++ bar 2013-01-29@@ -1,7 +1,8 @@ # 원본파일의 1,7라인이 Hello,       ...
Unified Format: 출력 예제(상세)(이전 페이지에서 계속)+f+g
Unified Format: 출력 예제(상세)$ diff -U 1 foo bar # 주변 라인을 1라인만 출력함--- foo 2013-01-29+++ bar 2013-01-29@@ -1,5 +1,4 @@ Hello,-I...
Unified Format: 출력 예제(상세)(이전 페이지에서 계속)+f+g
정리• diff의 대표적인 출력 포맷은 다음과 같다. Normal Format: diff foo bar Context Format: diff -c foo bar Unified Format: diff -u foo bar
참고• http://unixhelp.ed.ac.uk/CGI/man-cgi?diff• http://en.wikipedia.org/wiki/Diff• http://www.chemie.fu-  berlin.de/chemnet...
Upcoming SlideShare
Loading in …5
×

diff output formats

906
-1

Published on

2 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total Views
906
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide

diff output formats

  1. 1. diff Output Formats 안오균
  2. 2. diff$ diff foo bar• 두 파일을 라인 단위로 비교한다.• diff <원본 파일> <새 파일>
  3. 3. diff Output Formats• diff의 대표적인 출력 포맷은 다음과 같다. – Normal Format – Context Format – Unified Format
  4. 4. Normal Format$ diff foo bar• diff의 기본 출력 옵션으로,• 두 파일의 변경된 라인만 출력한다.• 변경된 부분을 명확하게 파악할 수 있지만, 변경된 라인 주변의 데이터 파악이 어렵다.
  5. 5. 예제 텍스트<원본 파일:foo> <새 파일:bar>1 Hello, 1 Hello,2 I am foo. 2 I am bar.3 a 3 a4 b 4 c5 c 5 d6 d 6 e7 e 7 f8 8 g 9
  6. 6. Normal Format: 출력 예제$ diff foo bar2c2< I am foo.---> I am bar.4d3< b7a7,8> f> g
  7. 7. Normal Format: 출력 형태• 변경 상태를 나타내는 키워드 이후에, 원본 파일과 새 파일의 라인을 번갈아 출력한다. 변경 키워드 < 원본 파일 라인 < 원본 파일 라인... --- > 새 파일 라인 > 새 파일 라인...
  8. 8. Normal Format: 변경 키워드• 변경 키워드는 변경의 상태를 나타내는 것으로, 추가/삭제/변경을 의미하는 a,d,c가 있다. a : 추가(added) d : 삭제(deleted) c : 변경(changed)
  9. 9. Normal Format: added추가됨(added)형태: (1)a[2]예제: 7a7,8의미: 원본 파일의 (1)라인 이후에, 새 파일의 범위 [2]만큼의 라인이 추가됨.
  10. 10. Normal Format: changed변경됨(changed)형태: [1]c[2]예제: 5,7c8,10의미: 원본 파일의 범위 [1]만큼의 라인이, 새 파일의 범위 [2]만큼의 라인으로 변경됨.
  11. 11. Normal Format: deleted삭제됨(deleted)형태: [1]d(2)예제: 5,7d3의미: 원본 파일의 범위 [1]만큼의 라인이 삭제됨. 새 파일의 (2)라인에 해당함.
  12. 12. Normal Format: 출력 예제(상세)$ diff foo bar2c2 # 원본 파일의 2라인이 새 파일의 2라인으로 변경됨< I am foo. # 원본 파일 라인(삭제됨)---> I am bar. # 새 파일 라인(추가됨)4d3 # 원본 파일의 4라인이 삭제됨< b7a7,8 # 원본의 7라인에 새 파일의 7,8라인이 추가됨> f> g
  13. 13. Context Format$ diff -c foo bar• `-c` 옵션을 사용하며, 변경된 라인 전/후의 라인을 함께 출력한다.• 변경된 라인의 주변을 확인할 수 있기 때문에, 정확하게 어떤 것이 변경되었는지 파악할 수 있다.• 주로 소스코드를 배포할 때 사용한다.• `-C 라인수`, `--context[=라인수]` 옵션으로, 출력할 주변 라인의 개수를 설정할 수 있다. (기본 3개)
  14. 14. 예제 텍스트<원본 파일:foo> <새 파일:bar>1 Hello, 1 Hello,2 I am foo. 2 I am bar.3 a 3 a4 b 4 c5 c 5 d6 d 6 e7 e 7 f8 8 g 9
  15. 15. Context Format: 출력 예제$ diff -c foo bar (좌측에서 계속)*** foo 2013-01-29 --- 1,8 ------- bar 2013-01-29 Hello,*************** ! I am bar,*** 1,7 **** a Hello, c! I am foo. d a e- b + f c + g d e
  16. 16. Context Format: 출력 예제$ diff -C 1 foo bar (좌측에서 계속)*** foo 2013-01-29 ! I am bar,--- bar 2013-01-29 a*************** c*** 1,5 **** *************** Hello, *** 7 ****! I am foo, --- 6,8 ---- a e- b + f c + g--- 1,4 ---- Hello,
  17. 17. Context Format: 출력 형태• 각 파일의 이름과 수정시각을 나타내는 헤더 이후에, 각 파일에서 변경된 라인 부분을 출력한다.• 옵션으로 넘긴 라인수만큼(기본 3개), 변경된 라인의 전/후 라인도 함께 출력한다. *** 원본파일 수정시각 --- 새파일 수정시각 *************** *** 원본 파일 범위 **** [변경 키워드] 원본 파일 라인 --- 새 파일 범위 ---- [변경 키워드] 새 파일 라인
  18. 18. Context Format: 변경 키워드• 각 파일에서 변경된 라인은, 변경 키워드와 공백 이후에 출력된다. 변경되지 않은 라인은 2개의 공백 이후 출력한다.• 변경 키워드는 다음과 같다. ! : 변경됨 + : 새 파일에 추가됨 - : 원본 파일에서 삭제됨
  19. 19. Context Format: 출력 예제(상세)$ diff -c foo bar*** foo 2013-01-29 # 원본 파일의 이름과 수정 시각--- bar 2013-01-29 # 새 파일의 이름과 수정 시각****************** 1,7 **** # 원본 파일의 1~7라인이 변경됨 Hello,! I am foo. # 변경된 라인 a- b # 삭제된 라인 c # 변경된 라인 주변 3라인을 출력 (첫번째 라인) d # (두번째 라인) e # (세번째 라인)
  20. 20. Context Format: 출력 예제(상세)(이전 페이지에서 계속)--- 1,8 ---- Hello,! I am bar, # 변경된 라인 a c # 변경된 라인 전/후로 3라인이 여기까지 겹치므로, d # 모두 한 번에 출력된다. e+ f # 추가된 라인+ g # 추가된 라인
  21. 21. Context Format: 출력 예제(상세)$ diff -C 1 foo bar # 주변 라인 1개까지만 출력한다.*** foo 2013-01-29--- bar 2013-01-29****************** 1,5 **** Hello,! I am foo, a- b c # 변경 라인 이후의 1개 라인만 출력됨--- 1,4 ---- Hello,
  22. 22. Context Format: 출력 예제(상세)(이전 페이지에서 계속)! I am bar, a c****************** 7 **** # 주변 라인을 1개만 출력하면 변경 부분이--- 6,8 ---- # 겹치지 않으므로, 분리해 출력한다. e # 마찬가지로, 변경 라인 전의 1라인만 출력됨+ f+ g # 변경 라인이자 파일의 마지막이다
  23. 23. Unified Format$ diff -u foo bar• `-u` 옵션을 사용하며, `-U 라인수`, `--unified[=라인수]` 옵션으로 주변 라인 개수를 설정할 수 있다.• Context Format과 비슷하지만, 변경된 부분의 주변 라인의 중복을 제거하고, 두 파일의 변화를 한 번에 볼 수 있어 간략하다.
  24. 24. 예제 텍스트<원본 파일:foo> <새 파일:bar>1 Hello, 1 Hello,2 I am foo. 2 I am bar.3 a 3 a4 b 4 c5 c 5 d6 d 6 e7 e 7 f8 8 g 9
  25. 25. Unified Format: 출력 예제$ diff -u foo bar (좌측에서 계속)--- foo 2013-01-29 +f+++ bar 2013-01-29 +g@@ -1,7 +1,8 @@ Hello,-I am foo.+I am bar. a-b c d e
  26. 26. Unified Format: 출력 예제$ diff -U 1 foo bar (좌측에서 계속)--- foo 2013-01-29 +f+++ bar 2013-01-29 +g@@ -1,5 +1,4 @@ Hello,-I am foo.+I am bar. a-b c@@ -7 +6,3 e
  27. 27. Unified Format: 출력 형태• 각 파일의 이름과 수정시각을 나타내는 헤더 이후에, 두 파일의 변경 부분을 함께 출력한다.• 변경 부분의 시작에는 각 파일의 변경 범위를 출력하고, 이후에 각 라인이 출력된다. --- 원본파일 수정시각 +++ 새파일 수정시각 @@ -원본파일범위 +새파일범위 @@ [변경 키워드]각 파일의 라인
  28. 28. Unified Format: 변경 키워드• 출력되는 각 라인은, 변경된 경우 변경 키워드로 시작하고, 변경되지 않은 경우 공백으로 시작한다.• 변경 키워드는 다음과 같다. + : 새 파일에 추가됨 - : 원본 파일에서 삭제됨
  29. 29. Unified Format: 출력 예제(상세)$ diff -u foo bar--- foo 2013-01-29+++ bar 2013-01-29@@ -1,7 +1,8 @@ # 원본파일의 1,7라인이 Hello, # 새 파일의 1,8라인으로 변경됨-I am foo. # 원본 파일에서 삭제되고,+I am bar. # 새 파일에 추가됨. a-b # 변경 키워드 이후에 바로 라인이 출력되고, c # 변경되지 않은 경우 공백 이후에 출력됨 d e
  30. 30. Unified Format: 출력 예제(상세)(이전 페이지에서 계속)+f+g
  31. 31. Unified Format: 출력 예제(상세)$ diff -U 1 foo bar # 주변 라인을 1라인만 출력함--- foo 2013-01-29+++ bar 2013-01-29@@ -1,5 +1,4 @@ Hello,-I am foo.+I am bar. a-b c # 변경 라인 이후 1개 라인까지만 출력@@ -7 +6,3 # 주변 라인의 개수가 1라인이므로, e # 변경 부분을 분리해서 출력함
  32. 32. Unified Format: 출력 예제(상세)(이전 페이지에서 계속)+f+g
  33. 33. 정리• diff의 대표적인 출력 포맷은 다음과 같다. Normal Format: diff foo bar Context Format: diff -c foo bar Unified Format: diff -u foo bar
  34. 34. 참고• http://unixhelp.ed.ac.uk/CGI/man-cgi?diff• http://en.wikipedia.org/wiki/Diff• http://www.chemie.fu- berlin.de/chemnet/use/info/diff/diff_3.html#SEC10
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×