在我的程序中,我想先获取用户输入,然后在每个 \ 之前插入一个 /所以我写了这个,但它不起作用。

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/

10-14 06:13