Chinaunix首页 | 论坛 | 博客
  • 博客访问: 63048
  • 博文数量: 22
  • 博客积分: 141
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-28 09:31
文章分类

全部博文(22)

文章存档

2012年(13)

2011年(9)

分类:

2012-06-26 15:38:03

原文地址:sed之大小写转换 作者:zooyo

1)
this is a dog!
请把每个单词的第一个字母替换成大写。
  1. sed 's/\b[a-z]/\u&/g

[解析]

  \b大家应该知道是锚定的意思,说白了就是边界符,那么这就只会匹配第一个开头的字母,然后\U的意思在元字符里的解释是“大写(不是标题首字符)\E 以前的字符”,而\u只是将下一个字符变为大写,注意它们的区别噢。


2)

把URL中的大写字符替换成小写。

  1. sed 's/[A-Z]/\l&/g' file

[解析]

  同理\L的意思是使之变为小写。

  1. # 全文大小写转换
  2. tr a-z A-Z
  3. tr A-Z a-z

  4. # 大小写对换
  5. echo "aBcDE" | tr '[a-zA-Z]' '[A-Za-z]


3)

比如说:a.txt b.txt c.txt

更名变成 A.txt B.txt C.txt 


  1. ls *.txt|sed -nr 's/(.)(\..*)/mv & \u\1\2/e'

[解析]

\u 是转换后面的内容第一个字母为大写,\U是全部为大写直到遇到 \E 为止。这就是区别:

  1. echo 'abc'|sed 's/^../\u&/'
  2. Abc
  3. echo 'abc'|sed 's/^../\U&\E/'
  4. ABc



阅读(4575) | 评论(0) | 转发(0) |
0

上一篇:Windows快捷键

下一篇:sed之正则的贪婪匹配

给主人留下些什么吧!~~