Git
顯示字元串的差異
這個答案顯示瞭如何處理
diff
兩個字元串 -使用 diff 命令比較兩個字元串?我嘗試:
diff <( printf '%s\n' "tring1" ) <( printf '%s\n' "string2" )
輸出是:
1c1 < tring1 --- > string2
這表明兩個字元串是不同的。
我想知道兩個字元串在哪些字元處不同,或者至少是差異開始的第一個字元。我該怎麼做?
這在比較長網址時很重要。
git diff
我根據一行內的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
是否正確應用以及如何解釋輸出。
對於您的特定案例,將字元串儲存在文件中,並將它們與
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”。
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
-逐字節比較兩個文件