我有一个变量var =“abcde $$$$$$$$ fff $$ gg”。我想用空格替换所有$''但是下面只放一个空格
var=$( echo "$var" | tr '$' ' ')
我怎样才能全部替换它们?
答案 0 :(得分:15)
您可以在不调用外部命令的情况下进行替换(使用bash)
$ var='abcde$$$$$$$$fff$$gg'
$ echo "${var//$/ }"
abcde fff gg
请注意,您应该使用单引号,以便“$”符号不会被插值
答案 1 :(得分:10)
适合我。您需要使用单引号或转义美元符号,否则它们将从双引号字符串中删除:
echo 'abcde$$$$$$$$fff$$gg' | tr '$' ' '
abcde fff gg
echo "abcde\$\$\$\$\$\$\$\$fff\$\$gg" | tr '$' ' '
abcde fff gg
echo abcde\$\$\$\$\$\$\$\$fff\$\$gg | tr '$' ' '
abcde fff gg
echo $'abcde$$$$$$$$fff$$gg' | tr '$' ' '
abcde fff gg
答案 2 :(得分:5)
老问题,但是我为他们写了这个,在用他们的病毒搜索引擎进行搜索之后,我会来这里你必须像这样使用echo -e
var="$( echo -e "$var" | tr '$' ' ' )"