LINUX.ORG.RU

замена в строке


0

0

есть:
mount_point=\«`expr »$*" : '.*\(/media/[^\t\n]*\)'`\"
try_mount_point=mount_point
parameters=`echo $*`

в процессе, допустим
try_mount_point=«/media/cdrom»

нужно в parameters заменить mount_point на
try_mount_point

но конструкция вида

parameters=`echo $* | sed -r s/$mount_point/$try_mount_point/`

возвращает пустую строку.. (
что делать? как правильно?


Доллары экранировать надо.

[nnz@imp ~]$ echo \$mount_point | sed -r s/\\\$mount_point/\$try_mount_point/
$try_mount_point
nnz ★★★★
()
Ответ на: комментарий от nnz

а сами попробовали? у меня ругается на неверные символы

SwitNJ
() автор топика

Ну ты и объясняешь. Два класса церковно-приходской школы?

SwitNJ> нужно в parameters заменить mount_point на try_mount_point

нужно в parameters заменить значение переменной mount_point на значение переменной try_mount_point

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

нет! нет и нет!

mountpoint=«/media/kaka» trymountpoint=«/media/cd» parameters="-o bla,bla,bla /dev/sr0 /media/kaka"

задача - найти в строке parameters подстроку mountpoint и заменить ее на подстроку trymountpoint, т.е в итоге должно быть

$ echo $parameters

-o bla,bla,bla /dev/sr0 /media/cd

SwitNJ
() автор топика
Ответ на: комментарий от SwitNJ

проблема2:

передается /media/privat24, а определяется как /media/priva

mount_point=\«`expr »$*" : '.*\(/media/[^\t\n]*\)'`\" почему-то не хочет понимать спецсимволы как конец ВК/ПС, а тупо как буквы (( как это побороть?? мне нужно от /media/ и до конца строки вычитать

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