参数替换 shell

Parameter Substitution shell

如何在 shell 中使用参数替换? 我有一个像这样的字符串:123 abc xyz 如果我想用这种形式替换它 123,abc,xyz 我该怎么做?

你是这个意思吗?

[root@xxx sync_tools]# echo "123 abc xyz" | awk '{OFS=",";=}1'
123,abc,xyz

您可以使用 sed:

echo ":123 abc xyz" | sed 's/^.//' | sed 's/ /,/g'

第一个 sed 删除行中的第一个字符 (:),第二个 sed 用逗号替换所有空格。

你有空吗,shell 你可以在 Linux 上使用它吗?使用 zsh,参数替换很容易。假设您的字符串存储在变量 PAR 中,即

PAR=":123 abc xyz"

您可以通过

获得想要的替代品
echo ${${PAR:1}// /,}

:1去掉第一个字符,//表示全局替换,其余的只是用逗号替换所有空格。