tr - translate or delete characters 主要用于转换和删除字符

带有最常用选项的t r命令格式为:
tr -c -d -s [ "string1_to_translate_from" ] [ "string2_to_translate_to" ] input_file
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
Input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

字符范围
使用tr时,可以指定字符串列表或范围作为形成字符串的模式。这看起来很像正则表达式,但实际上不是。指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z]    a-z内的字符组成的字符串
[A-Z]    A-Z内的字符组成的字符串
[0-9]    数字串
/octal   一个三位的八进制数,对应有效的ASCII字符
[O*n]    表示字符O重复出现指定次数n 如:[O*2]匹配OO的字符串。
大部分tr变种支持字符类和速记控制字符。
字符类格式为[:class],包含数字、希腊字母、空行、小写、大写、ctrl键、空格、点记符、图形等等。

去除重复出现的字符 -s  因为都是字母,故使用[a-z]

[python@master2 tr]$ more a.txt
helloo worldddd
[python@master2 tr]$ cat a.txt |tr -s "[a-z]"
helo world
[python@master2 tr]$ tr -s "[a-z]" < a.txt
helo world

删除空行

要删除空行,可将之剔出文件。使用-s来做这项工作。换行的八进制表示为\012

[python@master2 tr]$ more b.txt
this is a one line two thress foure
[python@master2 tr]$
[python@master2 tr]$
[python@master2 tr]$ tr -s "[\012]"< b.txt
this is a one line
two
thress
foure
[python@master2 tr]$ tr -s "[\n]" < b.txt
this is a one line
two
thress
foure

大写到小写 
除了删除控制字符,转换大小写是tr最常用的功能。为此需指定即将转换的小写字符[a-z]和转换结果[A-Z]。 
第一个例子,tr从一个包含大小写字母的字符串中接受输入。

[python@master2 tr]$ echo "May Day,May Day,Going Down.." | tr "[a-z]" "[A-Z]"
MAY DAY,MAY DAY,GOING DOWN..
[python@master2 tr]$
[python@master2 tr]$
[python@master2 tr]$ echo "May Day,May Day,Going Down.." | tr "[A-Z]" "[a-z]"
may day,may day,going down..
[python@master2 tr]$  echo "Hello World I Love You" |tr [:lower:] [:upper:]
HELLO WORLD I LOVE YOU

删除指定字符  #-d代表删除,[0-9]代表所有的数字,[: ]代表冒号和空格

[python@master2 tr]$ more c.txt
Monday :
Tuesday :
Wednesday :
Thursday :
Friday :
Saturday :
Sunday :
[python@master2 tr]$ cat c.txt |tr -d "[0-9][:]"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

最新文章

  1. svu update 遇到 Node remains in conflict
  2. struts2获取web元素(request、session、application)
  3. APMServ 配置记录
  4. http://blog.csdn.net/shangboerds/article/details/44175667
  5. centos6.5 ssh安全优化,修改默认端口名,禁止root远程登录
  6. Maven实战之Quick Start
  7. cocos2d-x回收池原理
  8. ReactNative-----环境搭建二(android)
  9. EF加载实体的方式
  10. 高屋建瓴 cocos2d-x-3.0架构设计 Cocos2d (v.3.0) rendering pipeline roadmap(原文)
  11. Android ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to register to receive intents
  12. 最简单的历史Hibernate获得短暂的
  13. [ios] 微信订阅号: ios博文精选
  14. Angular中使用$watch监听
  15. [机器学习Lesson4]多元线性回归
  16. Oracle ctl模版
  17. EF内容记录_EF连接Mysql版本问题
  18. SPI设计
  19. ASP.NET MVC5高级编程 之 HTML辅助方法
  20. 移动端html的overflow:hidden属性失效问题

热门文章

  1. Node安装配置
  2. 深度学习之Faster-R-CNN
  3. 两种最常用的破解centos7忘掉密码的解决方案
  4. java+web上传文件夹内的所有文件
  5. Python实现的寻找前5个默尼森数算法示例
  6. iOS启动图launchImage设置后在启动时无法显示
  7. 阿里云window server2012 r2服务器安装sql server2014配置成本地management工具连接
  8. phpstudy批量getshell工具
  9. 【POJ - 3685】Matrix(二分)
  10. ubantu使用小结