在我的程序中,我想首先获取用户输入,并\
在每个之前插入一个/
所以我写这个,但它不起作用.
echo "input a website"
read website
sed '/\//i\/' $website
Run Code Online (Sandbox Code Playgroud)
Eug*_*ash 116
试试这个:
website=$(sed 's|/|\\/|g' <<< $website)
Run Code Online (Sandbox Code Playgroud)
巴什实际上支持这种替代本身:
${parameter/pattern/string}
-取代的第一场比赛pattern
用string
.
${parameter//pattern/string}
-更换所有比赛pattern
用string
.
因此你可以这样做:
website=${website////\\/}
Run Code Online (Sandbox Code Playgroud)
说明:
website=${website // / / \\/}
^ ^ ^ ^
| | | |
| | | string, '\' needs to be backslashed
| | delimiter
| pattern
replace globally
Run Code Online (Sandbox Code Playgroud)
Kar*_*ath 15
echo $website | sed 's/\//\\\//g'
Run Code Online (Sandbox Code Playgroud)
或者,为了更好的可读性:
echo $website | sed 's|/|\\/|g'
Run Code Online (Sandbox Code Playgroud)