Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87025
  • 博文数量: 8
  • 博客积分: 279
  • 博客等级: 二等列兵
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-04 16:26
个人简介

http://fishcried.com

文章分类
文章存档

2014年(4)

2011年(4)

分类: LINUX

2011-09-05 11:23:44

tr   command

TABLE
1. 用途
2. 语法
3. 主要选项
4. SET1/SET2字符集合的书写形式字
    4.1  特殊字符
    4.3 SET2的重复形式
    4.4  类字符集合
    4.5  等价类字符集合
5.  使用详解
    5.1  转换字符
    5.2  压缩重复字符,删除
    5.3  应用举例
6. 参考文档


1. 用途
    转换,压缩,删除字符

2. 语法
    tr [OPTIONP]... SET1 [SET2]

3. 主要选项
   -c, -C, --complement
         使用SET1的补集合

   -d, --delete
          删除SET1中的字符,不做转换

   -s, --squeeze-repeats        
          压缩重复的字符为单一字符。
 

4. SET1/SET2字符集合的书写形式字
    4.1 特殊字符
        \n    换行   
        \r    回车
        \t    tab
        \\    \
         ...
    4.2 范围
            'M-N'
                从M到N递增的所有字符
            '[M-N]'
                GNU tr 的语法。但是常常会错误,因为tr会把[]同时当作字符集处理。
    4.3 SET2的重复形式
            '[C*n]'  
                n个C
            '[C*]'
                和SET1中一样多的C
    4.4 类字符集合
            '[:CLASS:]'
                alnum
                alpha
                blank
                cntrl
                digit
                graph
                lower
                upper
                print
                space
                xdigit
    4.5 等价类字符集合
               [=c=]    所有与c等价的字符类
5. 使用详解
    5.1 转换字符
        将标准输入的字符且出现在SET1中的每个字符转换成SET2中相应的字符。如果SET1中字符重复,SET2中字符不都一样,那么SET2中最后一个字符有效。
        tr 333 124
        tr 3 4
        两者等价
        SET1与SET2长度应该相同。如果SET1长度大于SET2,结果未定。如果SET1长度小于SET2,则SET2尾部截断。

    5.2 压缩重复字符,删除
        当只有-d选项的时候,删除SET1中出现的字符
        当只有-s选项的时候,压缩标准输入中出现在SET1中的重复字符为一个
        -d于-s同时的时候,tr首先用SET1进行删除操作,然后用SET2做压缩行为。
    5.3 应用举例
        *转换,可选择性压缩重复字符
            1 将小写字母转换成大写
            tr '[:lower:]' '[:upper:]'
            2 将abc一次转换成bcd,转换后的结果去重
            echo aaabbbccc |tr -s abc bcd
        *压缩重复字符
            1.对于连续的空行保留一个
            tr -s '\n'
        *删除字符
            1 删除!
            tr -d '!'
        *删除字符,然后压缩重复性字符
            1 删除!,然后压缩字母
             tr -ds '!' '[:alpha:]'
        词频统计简单实现
            tr -sc [:alpha:]\' '\n' |tr '[:upper:]' '[:lower:]' |sort |uniq -c |sort -k 1nr -k 2d    
6. 参考文档
        info tr
        man tr


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

上一篇:没有了

下一篇:c语言可变参数的函数编写

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