快速业务通道

linux常用命令解析

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-09
tr [-ds] SET1 参数说明:
-d :删除 SET1 这个字符串
-s :取代掉重复的字符!
范例:
[root @test /root]# last | tr ''[a-z]'' ''[A-Z]'' <==将小写改成大写
[root @test /root]# cat /etc/passwd | tr -d : <==嘿嘿! : 这个符号在 /etc/passwd 中不见了!
[root @test /root]# cat /home/test/dostxt | tr -d ''r'' > dostxt-noM <==将 DOS 档案的字尾符号 ^M 的符号去除!
说明:
其实这个指令也可以写在『正规表示法』里头!他也是由正规表示法的方式来取代数据的!以
上面的例子来说,使用 [] 可以设定一串字呢!也常常用来取代档案中的怪异符号!例如上面第三个
例子当中,可以去除 DOS 档案留下来的 ^M 这个断行的符号!这东西相当的有用!相信处理 Linux & Windows 系统中的人们最麻烦的一件事就是这个事情啦!亦即是 DOS 底下会自动的在每行行尾加入 ^M 这个断行符号!这个时候我们可以使用这个 tr 来将 ^M 去除! ^M 可以使用 r 来代 grep
 
语法:
[root @test /root ]# grep [-acinv] ''搜寻字符串'' filename
参数说明:
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 ''搜寻字符串'' 的次数
-i :忽略大小写的不同,大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ''搜寻字符串'' 内容的那一行!
范例:
[root @test /root]# grep ''root'' /var/log/secure
将 /var/log/secure 这个档案中有 root 的那一行秀出来
[root @test /root]# grep -v ''root'' /var/log/secure
若该行没有 root 才将数据秀出来到屏幕上!
[root @test /root]# last | grep root
若该行有 root 才将数据秀出来到屏幕上!
Empire CMS,phome.net

[root @test /root]# grep [A-Z]ANPATH /etc/man.config
将 /etc/man.config 这个档案当中,所有有:
[任何一个大写字符]后面接 ANPATH 的那一行就显示出来!
例如 AANPATH, BANPATH.... ZANPATH 等等!
说明: grep 是一个很常见的指令,最重要的功能就是进行字符串数据的比对了,需要说明的是『grep 在一个档案中查寻一个字符串时,他是以"整行"为单位来数据的撷取的!』也就是说,假如一个档案内有 10 行,其中有两行具有你所搜寻的字符串,则将那两行显示在屏幕上,其它的就丢弃了!而 grep 除了可以进行档案的资料搜寻之外,也常常被应用在 input/output 的数据处理当中,例如常见的管线命令 ( pipe ) 就可以常常到他的踪影!以上面的例子来看,我们可以发现前两个例子是查寻档案的内容,有没有加上 -v 所显示出来的结果是『相反的!』,而第三个例子则是以 pipe 的功能进行数据的处理的喔! 例题一:找出这个档案里面含有 know 这个字符,并将行号列出来: [root @test /root ]# grep -n ''know'' regexp.txt
3:* I don''t know how to do this *
grep 会一行一行的去比对 know 这个字符串,请注意,大小写是不一样的!
当该行里面没有 know 这个字符串时, grep 就会将该行舍弃而不显示出来,
不过,到第三行时,出现了 know 了,第三行就会被显示出来啦!
例题二:找出这个档案里面含有 * 这个字符,并将行号列出来:
[root @test /root ]# grep -n ''*'' regexp.txt
3:* I don''t know how to do this *
请特别留意喔,在正规表示法里面有相当多的『特殊字符』存在,而要
取消掉这些特殊字符的属性时,反斜线『』的存在就显的特别重要了!
在这个例子中,或许你会发现使用 grep -n ''*'' regexp.txt 也可以得到
Empire CMS,phome.net

相同的结果,但是,良好的习惯是需要养成的,这里,请以较为正统的
正规表示法来去除 * 这个特殊字符的属性,对您以后一定会有很多的好处的!
例题三:我要将所有 know 不论大小写都列出来,并列出行号:
[root @test /root]# grep -ni ''know'' regexp.txt
3:* I don''t know how to do this *
4:# I don''t Know how to do this $
5:^ I don''t KNOW how to do this @
如果不理会大小写的差异,加入 -i 这个参数吧!列出行号就以 -n 来达成!

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号