【发布时间】:2016-03-08 06:37:11
【问题描述】:
出于格式化目的,我想用空格替换字符串的所有字符。
STR="some string of unknown length"
SPC=" " <--- this is what I want
在this page 的帮助下,我能想到的最好办法是:
SPC=${STR//[a-Z]/ }
但这只会替换字母,而不是数字或任何特殊字符。这种类型的 Bash 字符串替换的“任何字符”的占位符是什么?
【问题讨论】:
-
我不太清楚您为什么要这样做出于格式化目的, 因为对于大多数格式化目的,您可以使用
printf。例如,str="some string of unknown length"; printf '%*s|%s\n%s|%s\n' "${#str}" "" "hello" "$str" "goodbye"。 -
好点。我根本没有意识到这一点......太坚持
echo而不是使用printf。感谢您的提示。