Chinaunix首页 | 论坛 | 博客
  • 博客访问: 368957
  • 博文数量: 61
  • 博客积分: 2451
  • 博客等级: 上尉
  • 技术积分: 650
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-06 21:24
文章分类

全部博文(61)

文章存档

2012年(1)

2011年(44)

2010年(16)

分类: LINUX

2011-05-26 17:16:39

做个记录:
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的内置函数 
阅读(13136) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~