Chinaunix首页 | 论坛 | 博客
  • 博客访问: 758051
  • 博文数量: 434
  • 博客积分: 11187
  • 博客等级: 上将
  • 技术积分: 5221
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-19 01:00
文章分类

全部博文(434)

文章存档

2016年(2)

2013年(1)

2012年(115)

2011年(195)

2010年(32)

2009年(89)

分类: LINUX

2009-11-19 15:05:05

====================tr 用法==========================
1、关于tr
  tr用来从标准输入中通过替换或删除操作进行字符转换。t r主要用于删除文件中控制字符
 或进行字符转换。
 带有最常用选项的tr命令格式为:
 tr - c - d - s [ " s t r i n g 1 _ t o _ t r a n s l a t e _ f r o m " ] [ " s t r i n g 2 _ t o _ t riannpsulta_t e _ t o " ]
 file
 这里:
 -c 用字符串1中字符集的补集替换此字符集,要求字符集为A S C I I。
 -d 删除字符串1中所有输入字符。
 -s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符
 串。
 Input - file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
2、字符范围
  指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表
  [a-z] a-z内的字符组成的字符串。
  [A-Z] A-Z内的字符组成的字符串。
  [0-9] 数字串。
  /octal 一个三位的八进制数,对应有效的A S C I I字符。
  [O*n] 表示字符O重复出现指定次数n。因此[ O * 2 ]匹配O O的字符串。
    tr中特定控制字符的不同表达方式
   速记符含义八进制方式
   \ a Ctrl-G 铃声\ 0 0 7
   \ b Ctrl-H 退格符\ 0 1 0
   \f Ctrl-L 走行换页\ 0 1 4
   \n Ctrl-J 新行\ 0 1 2
   \ r Ctrl-M 回车\ 0 1 5
   \t Ctrl-I tab键\ 0 11
   \ v Ctrl-X \ 0 3 0
3、例子
  去除oops.txt里面的重复字符
   tr -s "[a-z]"result.txt
  删除空行
   tr -s "[\012]"   大写到小写
   cat a.txt |tr "[a-z]" "[A-Z]" >b.txt
  删除指定字符
   一个星期的日程表。任务是从其中删除所有数字,只保留日期。日期有大
  写,也有小写格式。因此需指定两个字符范围[ a - z ]和[ A - Z ],命令tr -cs "[a-z][A-Z]""[\012*]"将
  文件每行所有不包含在[ a - z ]或[ A - Z ](所有希腊字母)的字符串放在字符串1中并转换为一新
  行。- s选项表明压缩所有新行, - c表明保留所有字母不动。原文件如下,后跟t r命令:
   tr -cs "[a-z][A-Z]" "[\012*]"   转换控制字符
   tr的第一个功能就是转换控制字符,特别是从d o s向U N I X下载文件时,忘记设置f t p关于回
  车换行转换的选项时更是如此.cat -v filename 显示控制字符。
    cat -v stat.txt
     box aa^^^^^12^M
     apple bbas^^^^23^M
     ^Z
  猜想‘^ ^ ^ ^ ^ ^’是t a b键。每一行以C t r l - M结尾,文件结尾C t r l - Z,以下是改动方法。
  使用- s选项,查看A S C I I表。^的八进制代码是1 3 6,^ M是0 1 5,t a b键是0 11,^ Z是0 3 2 ,下
 面将按步骤完成最终功能。
 用t a b键替换^ ^ ^ ^ ^ ^,命令为" \ 1 3 6 " " [ \ 0 11 * ] "。将结果重定向到临时工作文件stat.tmp
  tr -s "[\136]" "[\011*]" stat.tmp
 用新行替换每行末尾的^ M,并用\ n去除^ Z,输入要来自于临时工作文件stat.tmp。
  tr -s "[\015][\032]" "\n"  要删除所有的t a b键,代之以空格,使用命令
  tr -s "[\011]" "[\040*]" 注:都可以用sed 来完成
阅读(1943) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~