如何将多个空格分隔为多个破折号(-)?

时间:2019-10-30 21:27:21

标签: linux bash shell sed tr

我在使用Linux和Shell脚本方面相对较新,并且正在尝试将多个空格分隔为多个破折号。我很难使用sed和tr一次翻译多个空间。

我曾经在一个班级里做过以前的程序,当时我将空格变成了冒号,但是遇到了同样的问题,我只能做一个空格。它将把一个双空格变成一个冒号。

#!/bin/bash

echo $* | sed -s 's/ /-/g'

我的输入是"red blue green green"(绿色之间有两个空格),我的预期输出是"red-blue-green--green",但是我得到的是"red-blue-green-green"

编辑

对不起,我对语法的理解绝对不是我的强项。我正在运行的命令是'./script red blue green green',果岭之间有两个空格。

使用echo "$*"运行脚本没有得到不同的结果。

编辑2 我尝试对Replace one character with another in Bash

的答案进行演绎
read -p "Enter a list: " string
one="${string/ /-}"
all="${string// /-}" 

它给了我适当的输出。

感谢所有帮助!

0 个答案:

没有答案