유닉스 차이점 좌우 결과?


106

유닉스 diff 명령의 결과를 차례로 다른 차이 대신 나란히 플롯 할 수 있습니까? 예는 아래를 참조하십시오.

    diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf
< asdfsad
< fsaf
< fdsadf
---
> asdfsafdsf
> saf
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa
< fd
---
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> safa

나는 다음과 같은 것을 갖고 싶다.

diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf       > asdfsafdsf
< asdfsad        > saf       
< fsaf
< fdsadf
---
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa               > sadf
< fd              > sadf
---               > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > safa

vimdiff도 도움이 될 수 있습니다. 행운을 빕니다.
shellter 2013-06-28

답변:


168

에서 man diff를 사용 -y하여 나란히 할 수 있습니다 .

-y, --side-by-side
       output in two columns

따라서 다음과 같이 말하십시오.

diff -y /tmp/test1  /tmp/test2

테스트

$ cat a                $ cat b
hello                  hello
my name                my name
is me                  is you

비교해 봅시다 :

$ diff -y a b
hello                                                           hello
my name                                                         my name
is me                                                         | is you

39
참고 diff하드 코딩 최대 출력 폭 (열 130)를 갖는다. diff 옵션 --width=$COLUMNS을 추가하여 이를 터미널 너비로 설정하십시오.
ntc2 2013

6
또한 큰 diff의 경우 멋진 scrolly / searchable diff를 위해 다음과 같이 더 적게 파이프합니다.diff -y /tmp/test1 /tmp/test2 | less
willbradley


5
더 나은diff --width=$COLUMNS --suppress-common-lines --side-by-side a b
rubo77

@ rubo77 탭 확장을 설정 한 방법에 따라 출력이 열에 올바르게 정렬되도록 탭을 공백으로 확장 할 수도 있습니다.diff --expand-tabs --width=$COLUMNS --suppress-common-lines --side-by-side a b
EdwardTeach

40

icdiff 홈페이지에서 :

여기에 이미지 설명 입력

터미널은 색상을 표시 할 수 있지만 대부분의 diff 도구는 색상을 잘 사용하지 않습니다. 변경 사항을 강조 표시함으로써 icdiff는 방해가되지 않고 유사한 파일 간의 차이점을 보여줄 수 있습니다. 이는 기존 라인 내의 작은 변경 사항을 식별하고 이해하는 데 특히 유용합니다.

icdiff의 목표는 모든 상황에 대해 diff를 대체하려고하는 대신 diff에서 즉시 명확하지 않은 경우 변경된 내용을 더 잘 파악할 수있는 도구가되는 것입니다.

IMHO, 출력은 diff -y.


29
diff -y --suppress-common-lines file1 file2

3
이것은 원래 질문과 -y동일하지 않은 공통 라인을 보여 주기 때문에 받아 들여지는 대답이어야합니다 diff. +1.
helix

더 나은diff -W $COLUMNS --suppress-common-lines -y file1 file2
rubo77

13

당신이 사용할 수있는:

sdiff  file1 file2

또는

diff -y file1 file2

또는

vimdiff file1 file2

나란히 표시합니다.


2
diff -y과 의 차이점이 무엇인지 궁금합니다 sdiff. 그들의 출력은 나와 동일하게 보입니다.
Hux

11

sdiff파일 차이점을 나란히 병합 해야합니다 . man sdiff전체 이야기를 읽어보십시오 .


2
내 시스템에서 (GNU / LINX)는 sdiff같은 일을 표시 diff -y하고 sdiff정보 문서가 사용되지 말한다 : " '--output'( '-o')없이 '아니면 sdiff'을 나란히 차이를 생산하는이 사용. 더 이상 사용되지 않습니다. 대신 'diff'의 '--side-by-side'( '-y') 옵션을 사용하십시오. "
ntc2 2013

7

다음을 간단히 사용할 수 있습니다.

diff -y fileA.txt fileB.txt | colordiff

두 개의 열로 분할되고 색상이 지정된 출력을 보여줍니다! ( colordiff)


1
OSX에서 시도했지만 여기서는 작동하지 않습니다. 아마도 리눅스 전용 일 것입니다.
Nikola Petkanski

colordiff는 osx에 없습니다.
terry franguiadakis

당신은 설치할 수 있습니다 colordiff 사용 OSX에 브루 brew install colordiff 참조 colordiff 공식을
호르헤 페르난도 Matricali에게


6

cdiff 시도 -나란히 및 자동 호출기를 지원하여 작업 공간 또는 stdin에서 컬러, 증분 차이를 봅니다 .



4

파일에 공백과 탭이 일치하지 않는 경우 탭 -t을 확장하는 인수를 포함하는 것이 도움이 될 수 있습니다 .

diff -ty file1 file2

1

색상, 나란히 및 별칭으로 향상된 diff 명령

파일 내용이 다음과 같다고 가정 해 보겠습니다.

cat /tmp/test1.txt
1
2
3
4
5
8
9

cat /tmp/test2.txt
1
1.5
2
4
5
6
7

이제 나란히 비교

diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always /tmp/test1.txt /tmp/test2.txt
                                                                              > 1.5
3                                                                             <
8                                                                             | 6
9                                                                             | 7

사용할 별칭을 정의 할 수 있습니다.

alias diff='diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always'

그런 다음 새로운 diff 결과 :

diff /tmp/test1.txt /tmp/test2.txt
                                                                              > 1.5
3                                                                             <
8                                                                             | 6
9                                                                             | 7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.