문자열 차이 표시

문자열 차이 표시

이 답변은 diff두 문자열이 어떻게 -diff 명령을 사용하여 두 문자열을 비교하시겠습니까?

나는 시도한다:

diff <( printf '%s\n' "tring1" ) <( printf '%s\n' "string2" )

출력은 다음과 같습니다

1c1
< tring1
---
> string2

이는 두 문자열이 서로 다르다는 것을 나타냅니다.

두 문자열 중 어떤 문자가 다른지, 적어도 차이가 시작되는 첫 번째 문자를 알고 싶습니다. 어떻게 해야 합니까?

이는 긴 URL을 비교할 때 중요합니다.

git diff나는 다음을 기반으로 다른 답변을 조사했습니다.라인 내 차이

나는 노력한다

git diff --word-diff --word-diff-regex=. <( printf '%s\n' "tring1" ) <( printf '%s\n' "string2" )

출력은 다음과 같습니다

diff --git a/dev/fd/63 b/dev/fd/62
index 9234a649..b6ce327a 120000
--- a/dev/fd/63
+++ b/dev/fd/62
@@ -1 +1 @@
pipe:[69160538[-6-]{+8+}]

git diff올바르게 적용했는지, 출력을 어떻게 해석하는지 잘 모르겠습니다 .

답변1

특정 사용 사례의 경우 문자열을 파일에 저장하고 다음과 비교하십시오 git diff.

$ echo tring1 > f1
$ echo string2 > f2
$ git diff --word-diff --word-diff-regex=. --no-index f1 f2
diff --git a/f1 b/f2
index e8ae123..d704b3b 100644
--- a/f1
+++ b/f2
@@ -1 +1 @@
{+s+}tring[-1-]{+2+}

이는 문자열의 시작 부분에 "s" 문자가 추가되고 "1"이 "2"가 됨을 나타냅니다.

답변2

cmp -b <( printf '%s\n' "tring1" ) <( printf '%s\n' "string2" )
/dev/fd/63 /dev/fd/62 differ: byte 1, line 1 is 164 t 163 s

cmp-두 파일을 바이트 단위로 비교

관련 정보