이 답변은 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
-두 파일을 바이트 단위로 비교