我在脚本中有一个字符串变量x=tmp/variable/custom-sqr-sample/test/example
,我想做的是用/替换所有的“-”,之后,我应该得到以下字符串
x=tmp/variable/custom/sqr/sample/test/example
谁能帮我?
我尝试了以下语法它不起作用
exa=tmp/variable/custom-sqr-sample/test/example
exa=$(echo $exa|sed 's/-///g')
sed 基本上支持任何分隔符,当您尝试匹配 a 时,它会派上用场/
,最常见的是|
和#
,@
选择一个不在您需要处理的字符串中的分隔符。
$ echo $x
tmp/variable/custom-sqr-sample/test/example
$ sed 's#-#/#g' <<< $x
tmp/variable/custom/sqr/sample/test/example
在您上面尝试的推荐中,您只需要转义斜线,即
echo $exa | sed 's/-/\//g'
但选择不同的分隔符更好。
与这种情况相比,该tr
工具可能是更好的选择sed
:
x=tmp/variable/custom-sqr-sample/test/example
echo "$x" | tr -- - /
(这--
不是绝对必要的,但可以防止tr
(和人类)误认为-
一个选项。)
在bash
中,您可以使用参数替换:
$ exa=tmp/variable/custom-sqr-sample/test/example
$ exa=${exa//-/\/}
$ echo $exa
tmp/variable/custom/sqr/sample/test/example