Я пытаюсь изменить "/foo/bar/dir"
на "\/foo\/bar\/dir"
командой ruby gsub.
Я тестирую это в irb, результат
x = "/foo/bar/dir"
x.gsub("/","\/")
=> "/foo/bar/dir"
x.gsub("/","\\/")
=> "\\/foo\\/bar\\/dir"
Можно ли заменить "/" на "/" с помощью gsub?
Источник проблем:
Я пытаюсь выполнить «строку в командной строке», а «real_path» - моя переменная
real_path = "/home/me/www/idata"
path = real_path.gsub("/","\\/")
=> \\/home\\/me\\/www\\/idata
# But what I expect is \/home\/me\/www\/idata
run "sed 's/SHARE_PATH/#{path}/g' #{path}/config/sphinx.yml > #{path}/config/sphinx.tmp.yml"
результат команды "выполнить"
"sh -c 'sed '\''s/SHARE_PATH/\\/home\\/me\\/www\\/idata\\/shared/g .... "
Мне нужна только одна обратная косая черта, например
"sh -c 'sed '\''s/SHARE_PATH/\/home\/me\/www\/idata\/shared/g .... "
"бежать" - это команда Капистрано.
моё решение
используйте одинарную кавычку вместо двойной кавычки, как это
path = real_path.gsub("/",'\/')
real_path
? Я имею в виду, каков результатputs real_path
? Как я уже сказал, Вы спрашиваете о модификации, но у Вас естьgsub("\/", "\\/")
- person Dawid   schedule 22.02.2010