将单词的首字母转换成大写

做个记录:
1.用sed方法:
  1. sed 's/^\w\|\s\w/\U&/g'
简单说明:
\w 相当于 [a-zA-Z0-9] ,\s 表示 任何空白字符(包括空格,制表等)。\U将后面的字符转换成大写,&指前面匹配的内容,上面sed的作用是将行首字母或者是后面每个单词的首字母转换成大写。
2.用awk方法:
  1. code1:
  2. awk '{for(i=1;i<=NF;i++) {printf "%s%s ", toupper(substr($i,1,1)),substr($i,2)};printf ORS}' file
简单说明:
toupper 内置函数将参数转换成大写,返回转换后的内容。substr 内置函数用来截取指定长度字符。如上面截取字段从第一个字符开始。长度为1的字符串。即第一个字符 然后返回截取后的字符,传给toupper。如果没加指定长度的话。就截取到最后。如substr($i,2)从第二个字符开始一直到最后。上面:将每个字段的首字母转换成大写后输出。最后在输出ORS (默认为换行)。
  1. code2:
  2. awk '{for(i=1;i<=NF;i++){gsub(/^\w/,toupper(substr($i,1,1)),$i)};print}' urlfile
简单说明:
将每个字段的首字母替换成大写,然后输出。substr函数的返回值作为toupper函数的参数。toupper函数的返回值有作为gsub函数的参数。
3.用perl的方法
  1. code1:
  2. perl -pe '{s/\b\w/\u$&/g}' urlfile
简单说明:
\b 匹配每个单词边界。\u 将接在他后面的字符转换成大写。$& 相当于sed中&指前面匹配的内容。
  1. 这里-p 相当于下面一段代码:
  2. LINE:
  3. while (<>;) {
  4. # your code goes here
  5. } continue {
  6. print or die "-p destination: $!\n";
  7. }
即会自动打印$_中的内容。
  1. code2:

  2. #!/usr/bin/perl
  3. while(<>){
  4.                 s/\b\w+\b/ucfirst($&)/eg;
  5.                 print;
  6.         }
简单说明:
这里要说明的是e 这个修饰符使其替换部分能够用函数ucfirst 只将字符串的第一个字符变成大写 ,其实和上边差不多 只是这里在替换部分用到了perl的内置函数 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值