显示字符串的差异

显示字符串的差异

这个答案展示了如何diff两个字符串 -使用 diff 命令比较两个字符串?

我尝试:

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

输出是:

1c1
< tring1
---
> string2

这表明两个字符串是不同的。

我想知道两个字符串的哪些字符不同,或者至少是差异开始的第一个字符。我该怎么做?

这在比较长网址时很重要。

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-逐字节比较两个文件

相关内容