我所说的单词是指“由任意数量的空格或换行符分隔的字符串”。
样本数据
on a rabbit's burrowing in the forest:
a short tale
预期成绩
On a Rabbit's Burrowing in the Forest:
A Short Tale
注意:对于标题大小写,每个短语/句子的每个单词的第一个字母应大写。此后的每个单词都应以大写开头,除了小词a、in、the。我确实还希望保留空格和换行符。
减少测试用例
declare -a input
declare -a output
shopt -s extglob
IFS=
read -r -d '' input
for w in "${input[@]}"; do
if [[ $w = "@(a|in|the)" ]]; then
output+=( "$w" )
else
output+=( "${w@u}" )
fi
done
echo "${output[@]}"
这保留了空格和换行符,但它只转换第一个“单词”,而我想要除a、in和转换后的所有单词。