用Bash中的句点replace空格

我所需要做的就是replace一个空间( )用bash中的一个string( . )来表示。 我认为这将是非常简单的,但我是新的,所以我不知道如何修改这个使用类似的例子。

使用内联shellstringreplace。 例:

 foo=" " # replace first blank only bar=${foo/ /.} # replace all blanks bar=${foo// /.} 

有关更多详细信息,请参阅http://tldp.org/LDP/abs/html/string-manipulation.html

你可以使用tr ,就像这样:

 tr " " . 

例:

 # echo "hello world" | tr " " . hello.world 

man tr

描述
从标准input翻译,挤压和/或删除字符,写入标准输出。

在bash中,可以使用${VARIABLE//PATTERN/REPLACEMENT}构造函数在string中进行${VARIABLE//PATTERN/REPLACEMENT} 。 仅使用/而不是//只replace第一个匹配项。 该模式是一个通配模式,就像文件globs一样。

 string='foo bar qux' one="${string/ /.}" # sets one to 'foo.bar qux' all="${string// /.}" # sets all to 'foo.bar.qux' 

尝试这个

  echo "hello world" | sed 's/ /./g' 

使用参数replace:

 string=${string// /.} 

试试这个path:

 echo \"hello world\"|sed 's/ /+/g'|sed 's/+/\/g'|sed 's/\"//g' 

它用双引号replace双引号内的空格,然后用反斜杠replace+号,然后删除/replace双引号。

我不得不用这个来replaceCygwin中我的一个path中的空格。

 echo \"$(cygpath -u $JAVA_HOME)\"|sed 's/ /+/g'|sed 's/+/\\/g'|sed 's/\"//g'