두 파일의 줄을 비교하고 싶지만 출력의 노이즈를 최소화하기 위해 줄의 실제 차이점만 인쇄하고 싶습니다.
예를 들어 다음 두 파일이 있다고 가정해 보겠습니다.
a.txt
a b c d e f g h i j k l m n o p q r s t u v w x y z
b.txt
a B c d e f g h i j k l m n o p q r s t u v w x y z
(그 차이점은 글자의 대문자 사용입니다 b
.)
출력이 다음과 같기를 원합니다.
[-b-]{+B+}
현재 내가 찾은 가장 좋은 방법은 을 사용하는 것이지만 git diff --word-diff
전체 줄을 출력합니다.
a [-b-]{+B+} c d e f g h i j k l m n o p q r s t u v w x y z
출력을 수동으로 구문 분석하는 것 외에 더 직접적인 방법이 있습니까? 또한 이상적으로는 git diff
사용자가 추가 패키지를 설치할 필요가 없는 POSIX 셸 도구 보다 더 일반적인 것을 사용하는 것을 선호합니다 .
답변1
사용차이점:
$ wdiff -3 a.txt b.txt
======================================================================
[-b-] {+B+}
======================================================================
-3
or 옵션은 ---no-common
두 파일 사이의 공통 단어를 제거하고 차이점만 표시합니다.
배너 ===...
(및 빈 줄)는 다음 방법으로 제거할 수 있습니다 grep
.
$ wdiff -3 a.txt b.txt | grep -vx '=*'
[-b-] {+B+}
wdiff
diff
or 옵션을 지정하면 -d
균일한 데이터를 읽을 수도 있습니다 --diff-input
. 예 git
:
git diff somefile | wdiff -d -3
POSIX 도구 는 아니지만 wdiff
일반적으로 사용됩니다.