我有一个变量,其中包含四个用空格分隔的数字,例如:
a="12.3 423.4 11.0033 14.02"
但有时,我有一个尾随空格:
a="12.3 423.4 11.0033 14.02 "
我想用“&”替换空格,为此,我这样做:
echo ${a// / & }
这给了我:
12.3 & 423.4 & 11.0033 & 14.02
或者如果我有一个尾随空格:
12.3 & 423.4 & 11.0033 & 14.02 &
我的问题是我不知道我的字符串末尾是否会有一个空格,而且无论如何我都不想要那个额外的“&”。避免这个额外字符的最优雅的方法是什么?有没有办法说“如果空格和下一个字符是数字则替换”?
编辑:我知道我可以使用 sed,但由于 bash 中有变量替换机制,我想知道如何使用它来做我想做的事。我不知道如何在 bash 替换中写“不是行尾”或“是数字”。