我在使用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// /-}"
它给了我适当的输出。
感谢所有帮助!