时间:2017.11.15

作者:李强

参考:man,info,magedu讲义

声明:以下英文纯属个人翻译,英文B级,欢迎纠正,盗版不纠,才能有限,希望不误人子弟为好。

1、使用目的与场景

把STDIN的字符进行转换,压缩,删除的操作,然后输出到STDOUT上,具体案例在什么实际工作哪里能用到因为还没有参加工作,所以先不揣测,但是应该可以对文本进行操作。应该类似于windows下的查找替换的功能。

2、官方说明

Translate, squeeze, and/or delete characters

3、写在前面

tr的使用主要还是在格式上的理解,如何去更简洁的表达你想要修改的字符集,选择合适的选项,达到你想要字符集修改的效果。选项一般为单词的简写取首,加上长字节利于自己记忆,然后就是要理解这个单词的具体用法,这就要自己摸索着时间,将别人讲的转化为自己的理解,看八百遍讲义不敲不琢磨,除非你天才。

4、修改文件及涉及的环境变量

5、用法

 tr [OPTION]... SET1 [SET2]#选项的理解#当没有选项时,默认执行-t转换操作,-t 可以省略不写,这时不能只有set1没有set2,要成对。-c -C  --complement求补,求SET1的补集(所有不是SET1字符的字符)-d     --delete 删除,删除SET1的字符不进行转化,那么SET2就不用添加了,-s    --squeeze-repeats 挤压重复字符,-t    --truncate-set1 将第一个字符集对应字符转化为第二字符集 对应的字符

参数的格式问题:

这里感觉好多参数的格式都是基于shell可以识别的一种通配符的格式,并非正则表达式(需要正则表达式 去解释),比如说[0-9][a-z],但是这种有兼容性问题,还是用这些字符类表达比较好[:alpha:][:digit:]

\r \n \NNN 这种风格的,还有^,

 正常字符表示正常字符CHAR1-CHAR2  all characters from CHAR1 to CHAR2 in ascending order       [CHAR*]   用在SET2,复制CHAR字符直到长度和SET1相同[CHAR*N]  代表有N个重复的CHAR字符,N如果是0开头就是8进制,不是就是10进制。#参数可以是转义字符\NNN   字符用八进制表示可以去查看下ASCII编码然后对应转化为八进制\\     表示转义字符本身\a     audible BEL\b     backspace\f     form feed\n     回车\r     换行\t     水平tab\v     垂直tab#字符类有哪些?以下下是预定义类。[:digit:] 所有数字[:lower:] 所有小写[:upper:] 所有大写[:alpha:] 所有字母[:alnum:] 所有字母和数字[:punct:] 标点符号[:space:] 所有水平和垂直空白[:graph:] 打印字符,不包括空格[:print:] 可打印字符,包括空格[:cntrl:] 控制字符,表示哪些不晓得?[:Xdigit:] 所有16进制数字

[=C=]是个最近的发明,旨在扩展到所有非字母字符,但并不是所有GNU tr都支持,这个回头试试,看能不能匹配匹配中文。

tr set1 set2,当set1和set2的字符长度不同时什么情况

当set1小于set2 比如abc和1234,那么只会讲stdin中的abc替换为123,4就被忽略了

当set1大于set2 比如abcd和123,那么我输入abcdefg,就会被转换成1233efg了,它会拿set2的最后一个字符去替换set1中没有匹配到的,比如abcde和123,那么输入abcdefg就会被转成12333fg。

比如这里 abc 和空格, 这里会转成3个空格。

所以一般情况下要注意set1和set2要保持相同

学命令就像学文言文,给你说了文言文格式,但是要翻译的好,还是要看你的语文功底了。

实际的案例:(根据实际当中的操作不定期补充

1、ss -nt |tail -n +2 |tr -s " " ":"| cut -d ":" -f 4

[root@centos6 /app]#ss -nt
State      Recv-Q Send-Q Local Address:Port  Peer Address:Port
ESTAB      0      0   172.18.23.6:22    172.18.1.50:1696
ESTAB      0      0   172.18.23.6:22    172.18.1.50:12053
ESTAB      0      0   172.18.23.6:22    172.18.1.50:12226
[root@centos6 /app]#ss -nt |tail -n +2 |tr -s " " ":"| \
> cut -d ":" -f 4 | uniq -c3 172.18.23.6
[root@centos6 /app]#

这里是把空格压缩然后抓换为冒号。

这里的-s相当于-st,当有set1和set2存在时,t是默认值可以不写。

2、echo 12345|tr '0-9' '987654321'


转载于:https://blog.51cto.com/lajifeiwomoshu/1982127

tr命令解析_学习笔记相关推荐

  1. authconfig命令解析_学习笔记

    时间:2017.11.16 作者:李强 参考:man,info,magedu讲义 声明:以下英文纯属个人翻译,英文B级,欢迎纠正,盗版不纠,才能有限,希望不误人子弟为好. 1.使用目的与场景 先列在这 ...

  2. bat批处理命令解析和学习笔记/CMD窗口颜色永久修改

    bat帮助 最好的方式就是 进入百度BAThttps://baike.baidu.com/item/bat/365230?fr=aladdin 或 进入百度文库https://wenku.baidu. ...

  3. 正则表达式解析_学习笔记

    时间:2017.11.20 作者:李强 参考:man,info,magedu讲义 声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不 ...

  4. c语言编程实例解析精粹,C语言实例解析精粹学习笔记——35(报数游戏)

    实例35: 设由n个人站成一圈,分别被编号1,2,3,4,--,n.第一个人从1开始报数,每报数位m的人被从圈中推测,其后的人再次从1开始报数,重复上述过程,直至所有人都从圈中退出. 实例解析: 用链 ...

  5. DHCP服务_学习笔记

    DHCP服务_学习笔记 DHCP(Dynamic Host Configuration Protocol):动态主机配置协议 Lease:租约    续租时间需要是租期时间的一半 UDP协议: Ser ...

  6. db4o_8.0对象数据库官方文档翻译_学习笔记三

    紧接上篇:db4o_8.0对象数据库官方文档翻译_学习笔记二 3. Object Manager Enterprise Overview(OME视图)即OME插件的使用 If you did not  ...

  7. 韩顺平php可爱屋源码_韩顺平_php从入门到精通_视频教程_第20讲_仿sohu主页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理...

    韩顺平_php从入门到精通_视频教程_第20讲_仿sohu首页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理 对sohu页面的分析 注释很重要 经验:写一点,测试一点,这是一个很好的方法. ...

  8. 友盟统计+渠道包_学习笔记

    友盟统计+渠道包_学习笔记 资料: 官网:https://developer.umeng.com/docs/66632/detail/66889#h3-u5E38u89C1u95EEu9898 视频资 ...

  9. 图论01.最短路专题_学习笔记+模板

    图论01.最短路专题_学习笔记+模板 一.定义与性质 ● 需要的前导知识点 路径 最短路 有向图中的最短路.无向图中的最短路 单源最短路.每对结点之间的最短路 ● 最短路的性质 对于边权为正的图,任意 ...

  10. linux软件包管理解析,linux学习笔记_09_软件包管理解析.doc

    linux学习笔记_09_软件包管理解析 软件包管理 软件包分类 源码包(C语言编写的源代码) linux主要由C语言来写. 源码包可以用写字板打开 脚本安装包:源码包进行再开发的源码包(提供安装界面 ...

最新文章

  1. 新能源关键技术预见的研究
  2. C语言枚举型复习笔记
  3. OpenGL polygonsmooth多边形平滑的实例
  4. centos系统mysql连接workbench
  5. PetaPoco源代码学习--2.TableInfo、ColumnInfo类和Cache类
  6. [原创]项目管理知识体系指南之 13项目干系人管理思维导图
  7. 自动化学报-英文版-LaTeX模板
  8. 基于神经网络多层感知器的波士顿房价数据集回归问题
  9. 5.3 数值分析: 差商的定义及性质
  10. SeleniumWebdriver参数化详解
  11. 读书百客:《游终南山》赏析
  12. mysql中 ' 和 ` 的区别
  13. 鸿蒙系统1004无标题,win10 10041更新提示错误怎么处理
  14. 相对丰度会歪曲实际丰度,联合16S扩增子测序和总菌qPCR获得的绝对丰度可靠吗?...
  15. Linux系统更改时区
  16. 深夜碎碎念,肿瘤NGS基因检测的寒冬
  17. NGINX工作原理解析
  18. 分享一个MongoDB可视化工具rockmongo-on-windows
  19. 服务器 为什么linux,为什么服务器要用linux系统?
  20. C++语言程序设计第五版 - 郑莉(第六章课后习题)

热门文章

  1. NLP比赛-小布助手对话短文本语义匹配
  2. [CSP-S模拟测试]:游戏(最短路)
  3. oracle between and 边界查询用法
  4. A New Voyage
  5. 宣纸一笔,思重于行——聊一聊思考的价值
  6. uniapp 总结篇 (小程序)
  7. 计算机考研复试-英文问答
  8. 《企业管理学》—战略管理与目标管理知识点总结
  9. JBE与JLE的区别
  10. 快速批量导出excel超链接