仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 773|回复: 10
打印 上一主题 下一主题

[其他Linux] Linux编程之《tr命令-优化版》-linux命令五分钟系列之二十五仓酷云

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:25:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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&prime;<height.txt
1.791.83
1.651.59
这里有一个小常识点,像制表符、换行符这些字符欠好暗示,我们能够思索利用ASCII的八进制情势来暗示,制表符的八进制情势是11,回车是15,换行是12。而在tr命令中,可使用nnn情势暗示八进制情势的字符。假如你其实记不住这些编号,那末用t暗示制表符你总该能够记着吧!(n代表新行,r代表回车)
这下,你应当能够了解下面那条命令的感化了吧。假如你仍旧嫌疑,那末,看看上面这条命令,你就该心悦诚服了:
[rocrocket@rocrocketprogramming]$tr‘‘‘11&prime;<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&prime;‘[A*]‘<number.txt
AAAAA67890
6[CHAR*REPEAT]怎样用?
这也是SET2公用的设定,功效是将CHAR反复REPEAT次数。个中REPEAT次数能够用八进制数暗示,但记得要以0开首暗示八进制数。
例子:
[rocrocket@rocrocketprogramming]$tr’1-9&prime;‘[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:01 | 只看该作者
选择一些适于初学者的Linux社区。
板凳
发表于 2015-1-21 09:35:39 | 只看该作者
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
若天明 该用户已被删除
地板
发表于 2015-2-6 12:50:36 | 只看该作者
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
只想知道 该用户已被删除
5#
发表于 2015-2-8 16:14:20 | 只看该作者
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
山那边是海 该用户已被删除
6#
发表于 2015-2-10 01:35:01 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
不帅 该用户已被删除
7#
发表于 2015-2-27 21:36:25 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
再见西城 该用户已被删除
8#
发表于 2015-3-9 14:28:15 | 只看该作者
首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-11 02:00:49 | 只看该作者
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-17 18:11:38 | 只看该作者
随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。
柔情似水 该用户已被删除
11#
发表于 2015-3-24 18:43:31 | 只看该作者
当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 19:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表