我需要在bash中的字符串中用点(.)替换空格()。

我认为这将是相当简单的,但我是新的,所以我不知道如何修改类似的例子,以用于此用途。


当前回答

试试这个

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

其他回答

对路径试试这个:

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

它用+ sing替换双引号字符串中的空格,然后用反斜杠替换+号,然后删除/替换双引号。

我必须使用它来替换我在Cygwin中的一条路径中的空格。

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

使用内联shell字符串替换。例子:

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:

描述 翻译,挤压,和/或删除字符从标准输入,令状‐ 切换到标准输出。

使用参数替换:

string=${string// /.}

试试这个

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