在我的程序中,我想先获取用户输入,然后在每个 \
之前插入一个 /
所以我写了这个,但它不起作用。
echo "input a website"
read website
sed '/\//i\/' $website
最佳答案
试试这个:
website=$(sed 's|/|\\/|g' <<< $website)
Bash 实际上支持这种替换 natively :
${parameter/pattern/string}
— 用 pattern
替换 string
的第一个匹配项。${parameter//pattern/string}
— 用 pattern
替换 string
的所有匹配项。因此你可以这样做:
website=${website////\\/}
解释:
website=${website // / / \\/}
^ ^ ^ ^
| | | |
| | | string, '\' needs to be backslashed
| | delimiter
| pattern
replace globally
关于bash - 我可以使用 sed 来操作 bash 中的变量吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6744006/