我有一个字符串变量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')
答案 0 :(得分:2)
sed基本上支持任何分隔符,当一个人尝试匹配/
时会派上用场,最常见的是|
,#
和@
,选择一个不是在你需要处理的字符串中。
$ 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'
但选择不同的分隔符更好。
答案 1 :(得分:1)
在这种情况下,tr
工具可能是比sed
更好的选择:
x=tmp/variable/custom-sqr-sample/test/example
echo "$x" | tr -- - /
(--
并非绝对必要,但会让tr
(和人类)误以为-
选项。)
答案 2 :(得分:0)
在bash
中,您可以使用参数替换:
$ exa=tmp/variable/custom-sqr-sample/test/example
$ exa=${exa//-/\/}
$ echo $exa
tmp/variable/custom/sqr/sample/test/example