Нахождение отличий двух переменных, содержащих строки unix
Как я использую diff для переменных вместо файлов.
Все учебники имеют примеры с файлами, но не с переменными.
Я хочу напечатать только различия.
например:
TEXTA=abcdefghijklmnopqrstuvxyz; TEXTB=abcdefghijklmnopqrstuvxyr
2 ответа
diff
утилита для сравнения двух файлов Если вы действительно хотите сравнить две переменные, и вы используете bash
для своей оболочки вы можете "подделать" это так:
diff <(echo ${TEXTA}) <(echo ${TEXTB})
В противном случае вы можете просто записать свои переменные в два временных файла и сравнить их.
Однако обратите внимание, что в вашем примере, поскольку каждая переменная представляет собой одну строку, она просто скажет вам, что они разные, если вы не используете версию diff
это покажет вам конкретные позиции в строке, где они отличаются.
Я хотел бы использовать .
sdiff <(echo $TEXTA) <(echo $TEXTB)
указывает только на различия между двумя строками и показывает их бок о бок, разделенные
|
.
abcdefghijklmnopqrstuvxyz | abcdefghijklmnopqrstuvxyr
Это может быть полезно, когда ваша строка слишком длинная.
sdiff
выделит только ту часть строки, которая отличается.