2

我如何将 diff 用于变量而不是文件。

所有教程都有文件示例,但没有变量示例。

我希望它只打印差异。

例如:

TEXTA=abcdefghijklmnopqrstuvxyz; TEXTB=abcdefghijklmnopqrstuvxyr
4

2 回答 2

8

diff是一个比较两个文件的实用程序。如果你真的想比较两个变量,并且你正在使用bash你的 shell,你可以这样“伪造”它:

diff <(echo ${TEXTA}) <(echo ${TEXTB})

否则,您可以将变量写入两个临时文件并进行比较。

但是,请注意,在您的示例中,由于每个变量都是一行,它只会告诉您它们是不同的,除非您使用的版本diff会向您显示它们不同的行中的特定位置。

于 2013-11-13T15:16:53.953 回答
0

我会用sdiff.

sdiff <(echo $TEXTA) <(echo $TEXTB)

sdiff仅指出两个字符串之间的差异,并将它们并排显示,以 . 分隔|

abcdefghijklmnopqrstuvxyz  | abcdefghijklmnopqrstuvxyr

当您的字符串太长时,这可能很有用。sdiff只会突出显示字符串中不同的部分。

于 2021-12-17T01:39:46.910 回答