Подтвердить что ты не робот

Могу ли я использовать sed для управления переменной в bash?

В моей программе я хотел бы сначала ввести пользовательский ввод и вставить \ перед каждым / поэтому я пишу это, но это не работает.

echo "input a website"
read website

sed '/\//i\/' $website
4b9b3361

Ответ 1

Попробуйте следующее:

website=$(sed 's|/|\\/|g' <<< $website)

Bash действительно поддерживает такой вид замены изначально:

${parameter/pattern/string} - замените первое совпадение pattern на string.
${parameter//pattern/string} - замените все соответствия pattern на string.

Поэтому вы можете сделать:

website=${website//\//\\/} 

Ответ 2

echo $website | sed 's/\//\\\//g'

или, для лучшей читаемости:

echo $website | sed 's|/|\\/|g'