Can I use sed to manipulate a variable in bash? Can I use sed to manipulate a variable in bash? bash bash

Can I use sed to manipulate a variable in bash?


Try this:

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

Bash actually supports this sort of replacement natively:

${parameter/pattern/string} — replace the first match of pattern with string.
${parameter//pattern/string} — replace all matches of pattern with string.

Therefore you can do:

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

Explanation:

website=${website // / / \\/}                  ^  ^ ^  ^                  |  | |  |                  |  | |  string, '\' needs to be backslashed                  |  | delimiter                  |  pattern                  replace globally


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

or, for better readability:

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


You can also use Parameter-Expansion to replace sub-strings in variable.For example:

website="https://stackoverflow.com/a/58899829/658497"echo "${website//\//\\/}"

https:\/\/stackoverflow.com\/a\/58899829\/658497