我需要在bash中的字符串中用点(.)替换空格()。
我认为这将是相当简单的,但我是新的,所以我不知道如何修改类似的例子,以用于此用途。
我需要在bash中的字符串中用点(.)替换空格()。
我认为这将是相当简单的,但我是新的,所以我不知道如何修改类似的例子,以用于此用途。
当前回答
在bash中,您可以使用${VARIABLE// pattern / replacement}构造在字符串中进行模式替换。只使用/而不使用//来替换第一次出现。该模式是一个通配符模式,就像文件glob一样。
string='foo bar qux'
one="${string/ /.}" # sets one to 'foo.bar qux'
all="${string// /.}" # sets all to 'foo.bar.qux'
其他回答
你可以像这样使用tr:
tr " " .
例子:
# echo "hello world" | tr " " .
hello.world
来自man tr:
描述 翻译,挤压,和/或删除字符从标准输入,令状‐ 切换到标准输出。
shellcheck推荐的解决方案如下:
string="Hello World";返回"${字符串// /.}" 输出:你好。世界
试试这个
echo "hello world" | sed 's/ /./g'
使用参数替换:
string=${string// /.}
在bash中,您可以使用${VARIABLE// pattern / replacement}构造在字符串中进行模式替换。只使用/而不使用//来替换第一次出现。该模式是一个通配符模式,就像文件glob一样。
string='foo bar qux'
one="${string/ /.}" # sets one to 'foo.bar qux'
all="${string// /.}" # sets all to 'foo.bar.qux'