Нахождение отличий двух переменных, содержащих строки unix

Как я использую diff для переменных вместо файлов.

Все учебники имеют примеры с файлами, но не с переменными.

Я хочу напечатать только различия.

например:

TEXTA=abcdefghijklmnopqrstuvxyz; TEXTB=abcdefghijklmnopqrstuvxyr

2 ответа

Решение

diff утилита для сравнения двух файлов Если вы действительно хотите сравнить две переменные, и вы используете bash для своей оболочки вы можете "подделать" это так:

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

В противном случае вы можете просто записать свои переменные в два временных файла и сравнить их.

Однако обратите внимание, что в вашем примере, поскольку каждая переменная представляет собой одну строку, она просто скажет вам, что они разные, если вы не используете версию diff это покажет вам конкретные позиции в строке, где они отличаются.

Я хотел бы использовать .

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

указывает только на различия между двумя строками и показывает их бок о бок, разделенные |.

      abcdefghijklmnopqrstuvxyz  | abcdefghijklmnopqrstuvxyr

Это может быть полезно, когда ваша строка слишком длинная. sdiffвыделит только ту часть строки, которая отличается.

Другие вопросы по тегам