Dans mon programme, je voudrais d'abord obtenir l'entrée utilisateur et insérer un \
avant chaque /
donc j'écris ceci, mais ça ne marche pas.
echo "input a website"
read website
sed '/\//i\/' $website
Essaye ça:
website=$(sed 's|/|\\/|g' <<< $website)
Bash prend en charge ce type de remplacement en natif :
${parameter/pattern/string}
- remplace la première correspondance de pattern
par string
.${parameter//pattern/string}
- remplace toutes les correspondances de pattern
par string
.
Vous pouvez donc faire:
website=${website////\\/}
Explication:
website=${website // / / \\/}
^ ^ ^ ^
| | | |
| | | string, '\' needs to be backslashed
| | delimiter
| pattern
replace globally
echo $website | sed 's/\//\\\//g'
ou, pour une meilleure lisibilité:
echo $website | sed 's|/|\\/|g'