LINUX.ORG.RU

[sed] [bash] escape-symbol проблемы в седе


0

1
$> cat ~/bin/color_test.sh 
#!/bin/bash

ColorOff='\e[0m'       # Text Reset
BWhite='\e[1;37m'      # Bold White

string="test TEST test"
echo -e "$string" | sed -e "s/TEST/${BWhite}TEST${ColorOff}/g"

$> ~/bin/color_test.sh 
test e[1;37mTESTe[0m test

Вообще говоря, ожидалось увидеть что-то вроде test TEST test

Вопрос - как не меняя цвето-переменные добиться нужного результата?

> string=«test TEST test»
> echo -e «$string»

пока ты придумываешь объяснение "-e" в «echo» в данном случае, я подумаю над ответом, ок? ;)

arsi ★★★★★ ()

хм… ладно, я тут попытался подумать… :)

#!/bin/bash

ColorOff='\\e[0m'       # Text Reset
BWhite='\\e[1;37m'      # Bold White

string="test TEST test"
echo -e `echo "$string" | sed -e "s/TEST/${BWhite}TEST${ColorOff}/g"`
arsi ★★★★★ ()

Феерично:) Где такому учат?

Led ★★★☆☆ ()
Ответ на: комментарий от arsi

Вообще-то, по-хорошему, надо бы ещё и [ экранировать

Led ★★★☆☆ ()
Ответ на: комментарий от lempicka

>что-то не так?

Механическое набивание букв, без малейшего понимания что как работает и причинно-следственных связей (не говоря уже об элементарной логике)

Led ★★★☆☆ ()
Ответ на: комментарий от lazyklimm

>> не меняя цвето-переменные

очень-очень внезапно-внезапно:

#!/bin/bash

ColorOff='\e[0m'       # Text Reset
BWhite='\e[1;37m'      # Bold White

MyColorOff=\\$ColorOff
MyBWhite=\\$BWhite

string="test TEST test"
echo -e `echo "$string" | sed -e "s/TEST/${MyBWhite}TEST${MyColorOff}/g"`

остальное сам думай, я сегодня уже не могу %)

arsi ★★★★★ ()
Ответ на: комментарий от Led

> Вообще-то, по-хорошему, […]

а я плохой мальчик ;)

arsi ★★★★★ ()
Ответ на: комментарий от lempicka

>Один лишний -e в echo и столько гнева.

«Гнев»? Где ты его увидела?

Круто.

Ты спросила - я ответил.

Led ★★★☆☆ ()

>escape-symbol проблемы в седе

проблемы не в седе.

slackwarrior ★★★★★ ()

Всё легко. $'\e[0m'

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.