- 论坛徽章:
- 0
|
如何把每个单词的第一个字母改为大写
5楼 发表于 2009-7-25 11:39
回复 #4 asmboy001 的帖子
sed 's/\<[a-z]/\U&/g'
感觉楼主没理解含义,\U是匹配的字符全部转换成大写,此处应该用\u才比较好理解
\<[a-z] ——>\<代表单词左边界,此处即空格、标点符号等之后的第一个字母
\u代表将匹配字符的第一个字母转换成大写,\U代表将匹配字符的所有字母转换成大写
\l代表将匹配字符的第一个字母转换成小写,\L代表将匹配字符的所有字母转换成小写
& ——>代表之前的匹配
s/[a-z]\>/\u&/g ——>将每个单词的最后一个字母转换成大写
s/[a-z]\+\>/\u&/g ——>将每个单词的第一个字母转换成大写
回答完毕,自己多练习研究吧。
我按照上面这位大哥的实际操作结果如下:哪位高人具体解释下上面几个参数\u \U \| \L到底怎么用下!
1>[root@localhost tmp]# sed 's/\<[a-z]/\u&/g' file
ello,y ame s inux 308033262
2>[root@localhost tmp]# sed 's/\<[a-z]/\U&/g' file
Hello,My Name Is Linux 308033262 |
|