免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2481 | 回复: 4
打印 上一主题 下一主题

tr命令的`info tr`个人总结 附带实例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-05 13:42 |只看该作者 |倒序浏览
本帖最后由 j3kljs02398j 于 2011-09-07 13:10 编辑

tr   command

TABLE
1.用途
2.语法
3.主要选项
4.SET1/SET2字符集合的书写形式字
        4.1 特殊字符
        4.3SET2的重复形式
        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.3SET2的重复形式
                        '[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 将小写字母转换成大写
  1. tr '[:lower:]' '[:upper:]'
复制代码
2 将abc一次转换成bcd,转换后的结果去重
                        echo aaabbbccc |tr -s abc bcd
                *压缩重复字符
                        1.对于连续的空行保留一个
  1. tr -s '\n'
复制代码
*删除字符
                        1 删除!
  1. tr -d '!'
复制代码
*删除字符,然后压缩重复性字符
                        1.删除!,然后压缩字母
  1. tr -ds '!' '[:alpha:]'
复制代码
词频统计简单实现
  1. tr -sc [:alpha:]\' '\n' |tr '[:upper:]' '[:lower:]' |sort |uniq -c |sort -k 1nr -k 2d
复制代码
6 参考文档
        'info tr'
        'man tr'       
link:http://blog.chinaunix.net/space. ... blog&id=2684164

论坛徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序设计版块每日发帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序设计版块每日发帖之星
日期:2016-06-12 06:20:002016科比退役纪念章
日期:2016-05-31 15:47:20CU十四周年纪念徽章
日期:2016-05-27 12:24:562015年亚洲杯之阿曼
日期:2015-05-03 21:01:352015年辞旧岁徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序设计版块每日发帖之星
日期:2016-08-11 06:20:00
2 [报告]
发表于 2011-09-05 13:46 |只看该作者
支持下

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
3 [报告]
发表于 2011-09-05 14:34 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2011-09-05 17:45 |只看该作者
楼主,能否把 -c 这个参数给细点解释一下呀,最好用例子,我一直对这个参数不是很理解,谢谢啦^_^

论坛徽章:
0
5 [报告]
发表于 2011-09-05 18:08 |只看该作者
楼主,能否把 -c 这个参数给细点解释一下呀,最好用例子,我一直对这个参数不是很理解,谢谢啦^_^
wang_qiao_ying 发表于 2011-09-05 17:45

1.c 是complement的缩写,互补的意思。
-c 选项就是取SET1 的补集,相反的意思。
例如 删除所有非字母字符如下
tr -dc '[:alpha:]'
这是个简单的例子。
2.tr -sc '[:alpha:]' '[\n*]' 猜猜这个是要做什么?
可以看看这个帖子 http://bbs.chinaunix.net/thread-3591713-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP