Git

顯示字元串的差異

  • November 16, 2021

這個答案顯示瞭如何處理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-逐字節比較兩個文件

引用自:https://unix.stackexchange.com/questions/677764