bash 中的小写/大写有一个很好的功能:
$ string="A FEW WORDS"
$ echo "${string,}"
a FEW WORDS
$ echo "${string,,}"
a few words
$ echo "${string,,[AEIUO]}"
a FeW WoRDS
Run Code Online (Sandbox Code Playgroud)
有人知道类似的方法将变量上每个单词中的第一个字符设置为大写,并将每个单词中的其余字符设置为小写吗?
$ echo "${string,,[^.]}"
a few words
$ echo "${string,,[^]}"
A FEW WORDS
$ echo "${string,,.}"
A FEW WORDS
$ echo "${string,,^.}"
A FEW WORDS
$ echo "${string,,^?}"
A FEW WORDS
$ echo "${string,,?}"
a few words
Run Code Online (Sandbox Code Playgroud)
GNU sed 等文本处理工具可以在这方面为您提供帮助:
$ sed -E 's/(\w)(\w*)/\U\1\L\2/g' <<<"$string"
A Few Words
Run Code Online (Sandbox Code Playgroud)
这会为每个单词捕获两个组(一个单词字符,后跟零个或多个单词字符)。替换用于\U将第一组大写并\L小写其余组。
\w是 的简写[[:alnum:]_],即您所在区域中被视为字母或数字的任何内容,加上_。
| 归档时间: |
|
| 查看次数: |
993 次 |
| 最近记录: |