|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
系统安全相关命令: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文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。 |
|