linux中字符转换命令-tr的用法
来源:互联网 发布:膳魔师淘宝旗舰店 编辑:程序博客网 时间:2024/05/01 08:25
可以把tr看作为一个简化的sed工具,tr表示为:translate。tr命令主要用于实现以下两个功能
- 替换操作的字符串转换。
- 删除操作的字符串转换,可以很容易的删除一些控制字符或者是空行。
tr命令能够实现的功能,都能够用sed命令来实现。但就具体的替换功能来说,tr用起来更容易,也比较简单。
一,命令格式
tr [option] ["string1"] ["string2"] < file常用的选项有:
- 默认选项。就是没有任何选项的时候,tr默认为替换操作,就是将string1在文件中出现的字符替换为string2中的字符,这里要注意的是替换关系。
- -c选项,用string1中字符的补集替换string1,这里的字符集为ASCII。
- -d选项,删除文件中所有在string1中出现的字符。
- -s选项,删除文件中重复并且在string1中出现的字符,只保留一个。
-c选项在使用时,只是将string1替换为现在的补集,如在使用
[root@localhost client]# echo "hello world,root,2012" | tr -c "0-9" "*"*****************2012*可以看出,我们使用0-9,添加-c选项后,会把0-9替换为其补集,这时补集自然不包含0-9,而包含很多其它的字符,接下来就把所有的其它字符都替换成*号,但不包含数字。
如果只需要替换数字的话:
[root@localhost client]# echo "hello world,root,2012" | tr "0-9" "*"hello world,root,****
二,字符串的取值范围
指定string或string2的内容时,只能使用单字符或字符串范围或列表。
- [a-z] a-z内的字符组成的字符串。
- [A-Z] A-Z内的字符组成的字符串。
- [0-9] 数字串。
- \octal 一个三位的八进制数,对应有效的ASCII字符。
- [O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
三,控制字符的不同表达方式
四,字符替换
这是tr的默认操作,先看下面的命令和输出
[root@localhost client]# echo "hello world" | tr "a-z" "A-Z"HELLO WORLD[root@localhost client]# echo "hello world" | tr "a-l" "A-Z"HELLo worLD[root@localhost client]# echo "hello world" | tr "a-z" "A-H"HEHHH HHHHD第一行输出就是将小写换成大写。
第二行输出将小写中的a-l分别换成A-L,而将小写中的l以后的字符都不替换。
第三行输出将小写中的a-h换成A-H,而h以后的字符都换成H,因为后者的替换空间没有前面的字符空间大,所以就重复后面的H,相当于后面的字符是A-HHH......HHHHH。
如果我们想要进行大小写转换,可以按下面的输入:
tr "a-z" "A-Z" < inputfile
五,去除重复字符
这个时候,所用的选项是-s选项,如:
[root@localhost client]# echo "hello world,root" | tr -s "ao"hello world,rot[root@localhost client]# echo "hello world,root" | tr -s "lo"helo world,rot[root@localhost client]# echo "hello world,root" | tr -s "a-z"helo world,rot[root@localhost client]# echo "hello world,root" | tr -s "0-9"hello world,root第一行表示将输入字符串中的包含在"ao"字符集中的重复字符去掉,只留一个。因为"hello world,root",只有o满足条件,所以将root变成rot,把中间的两个o变成一个。
第二行将hello和root两个字符都压缩了。
第三行表示将a-z中的除复字符都去掉。
第三行表示将字符串中的重复的且重复字符在0-9字符集中的字符去掉,这里没有。
如果我们想要去掉空行,可以这样操作:
tr -s "\n" < inputfile 或者 tr -s "\012" <inputfile // 这两个是一样的。就是将重复的换行符去掉,只留一个。
六,删除字符
-d选项和-s选项类似,只不过-d选项会删除所有出现的字符。
[root@localhost client]# echo "hello world,root" | tr -d "a-h"llo worl,root[root@localhost client]# echo "hello world,root,2012" | tr -d "a-z" ,,2012[root@localhost client]# echo "hello world,root,2012" | tr -d "0-9"hello world,root,
- linux中字符转换命令-tr的用法
- linux中字符转换命令-tr的用法
- linux tr命令参数及用法详解---删除文件中控制字符或进行字符转换
- linux tr命令参数及用法详解---删除文件中控制字符或进行字符转换
- tr 命令 转换字符
- Linux tr命令的用法
- linux命令之字符转换命令:tr, col, join, paste
- linux---tr,col,join,paste,expand 字符转换命令
- linux中tr命令的学习小结
- linux的tr命令
- Linux下tr命令“字符”处理的实用例子
- Linux下tr命令“字符”处理的实用例子
- Linux下tr命令“字符”处理的实用例子
- linux tr命令对来自标准输入的字符进行转换、删除及压缩
- Unix中tr命令“字符”处理的实用例子
- Linux命令(11)——字符转换命令:tr、col、join、paste、expand
- linux中tr命令简介
- Linux下五个字符转换命令:tr,col,join,paste,expand
- HDU 2520 我是菜鸟,我怕谁
- Oracle With Clause和优化场景
- 不使用第三方变量交换x,y
- oracle中的split 字符串分割函数
- Ubuntu12.04开机自动挂载windows分区
- linux中字符转换命令-tr的用法
- php的setcookie使用详解
- 用ffmpeg进行视频转码
- VBS解压zip文件并且递归统计文件数目
- Django项目中静态文件的处理方法
- Lucene学习笔记一
- 这一生,还能见妈妈几次
- linphone中h264的 RTP打包(二)
- 系统找不到proguard.cfg