仓酷云
标题:
Linux编程之《tr命令-优化版》-linux命令五分钟系列之二十五仓酷云
[打印本页]
作者:
飘灵儿
时间:
2015-1-18 11:25
标题:
Linux编程之《tr命令-优化版》-linux命令五分钟系列之二十五仓酷云
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho
tr是translate的简写,亦即翻译,可是遗憾的是,它不克不及翻译句子,只能翻译单个字符。
1tr的事情道理是甚么?
先记着一点,tr命令不承受指定的文件参数,而只是对尺度输出举行翻译。好了,记着这点后,我们持续。
tr的命令格局是trSET1SET2,但凡在SET1中的字符,城市被交换为SET2中响应地位上的字符,复杂吧!
2举个例子吧!
tr的例子实在都迥然不同,看一个最复杂的例子:
我们有一个包括了四团体身高的数据文件,名字叫height.txt,它的内容是如许的:
[rocrocket@rocrocketprogramming]$catheight.txt
1.791.83
1.651.59
我们想弄一个开玩笑,将一切人的身高从1米级别都进步到2米级别,呵呵,一个tr就能够弄定。
[rocrocket@rocrocketprogramming]$tr12<height.txt
2.792.83
2.652.59
但愿你没有健忘,tr只处置尺度输出,以是我们必要将height.txt经由过程重定向指到tr的尺度输出才能够。
3我们能够用tr来修正文件中的距离符么?
Goodidea!
当利用cut的时分,一般会被距离符成绩所困扰,我们这个时分能够思索到tr这个命令。
仍是以height.txt文件为例,个中的距离符是空格,我们把它修正为制表符吧!
[rocrocket@rocrocketprogramming]$tr‘‘‘11′<height.txt
1.791.83
1.651.59
这里有一个小常识点,像制表符、换行符这些字符欠好暗示,我们能够思索利用ASCII的八进制情势来暗示,制表符的八进制情势是11,回车是15,换行是12。而在tr命令中,可使用nnn情势暗示八进制情势的字符。假如你其实记不住这些编号,那末用t暗示制表符你总该能够记着吧!(n代表新行,r代表回车)
这下,你应当能够了解下面那条命令的感化了吧。假如你仍旧嫌疑,那末,看看上面这条命令,你就该心悦诚服了:
[rocrocket@rocrocketprogramming]$tr‘‘‘11′<height.txt|sed-nl
1.79t1.83$
1.65t1.59$
看!空格的切实其实确被交换成了制表符喽!
4利用tr能把文章中的小写都转换成年夜写么?
这个恰是tr所善于的中央。
到场我们具有一个文件叫做word.txt,内里包括的内容是AbcdE。
那末最复杂的交换巨细写的办法是:
[rocrocket@rocrocketprogramming]$catword.txt
AbcdE
[rocrocket@rocrocketprogramming]$tr‘a-z’‘A-Z’<word.txt
ABCDE
5[CHAR*]怎样用?
这是SET2公用的设定,功效是反复指定的字符到与SET1不异长度为止
例子:
[rocrocket@rocrocketprogramming]$catnumber.txt
1234567890
[rocrocket@rocrocketprogramming]$tr’1-5′‘[A*]‘<number.txt
AAAAA67890
6[CHAR*REPEAT]怎样用?
这也是SET2公用的设定,功效是将CHAR反复REPEAT次数。个中REPEAT次数能够用八进制数暗示,但记得要以0开首暗示八进制数。
例子:
[rocrocket@rocrocketprogramming]$tr’1-9′‘[A*5]BCDE’<number.txt
AAAAABCDE0
7在tr中另有哪些暗示汇合的标记呢?
[:alnum:]:一切字母字符与数字
[:alpha:]:一切字母字符
[:blank:]:一切程度空格
[:cntrl:]:一切把持字符
[:digit:]:一切数字
[:graph:]:一切可打印的字符(不包括空格符)
[:lower:]:一切小写字母
[:print:]:一切可打印的字符(包括空格符)
[:punct:]:一切标点字符
[:space:]:一切程度与垂直空格符
[:upper:]:一切年夜写字母
[:xdigit:]:一切16进位制的数字
例子:
将一切的数字都转换为字符x。
[rocrocket@rocrocketprogramming]$tr[:alnum:]‘[x*]‘<number.txt
xxxxxxxxxx
8tr内里包括SET1和SET2,那假如呈现两个汇合的巨细分歧的情形,tr怎样处置呢?
这个成绩,最好的办理举措就是做实行啊。
第一种情形是SET1>SET2:
[rocrocket@rocrocketprogramming]$tr1-5AB<number.txt
ABBBB67890
结论一会儿就出来了,SET1中多出来的字符城市和SET2中最初一个字符绝对应。
第二种情形SET1<SET2:
[rocrocket@rocrocketprogramming]$tr1-3ABCDE<number.txt
ABC4567890
Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
作者:
莫相离
时间:
2015-1-18 19:53
选择一些适于初学者的Linux社区。
作者:
仓酷云
时间:
2015-1-21 09:35
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
作者:
若天明
时间:
2015-2-6 12:50
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
作者:
只想知道
时间:
2015-2-8 16:14
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
作者:
山那边是海
时间:
2015-2-10 01:35
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
作者:
不帅
时间:
2015-2-27 21:36
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
作者:
再见西城
时间:
2015-3-9 14:28
首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。
作者:
冷月葬花魂
时间:
2015-3-11 02:00
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
作者:
愤怒的大鸟
时间:
2015-3-17 18:11
随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。
作者:
柔情似水
时间:
2015-3-24 18:43
当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2