码迷,mamicode.com
首页 > 系统相关 > 详细

linux系统中cut sort tee 和uniq命令的使用

时间:2015-10-26 18:59:01      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:linux

 cut命令的使用 -----分割 

 [root@wangxiangzhe wang]# cut -d ‘:‘ -f 1 passwd1 |head -n3  //cut命令用于切割。-d后面指  定分隔符,用单引号引起来 
root                                                           //-f指定第几段。即用分隔符分割后的第几段 
bin
daemon
  [root@wangxiangzhe wang]# cut -c1 passwd1 |head -n 3     //cut后面指定一个数字,表示截取第几个字符 
r
b
d
  [root@wangxiangzhe wang]# cut -c1-5 passwd1 |head -n 3   //cut后面指定一个数字域,表示街区从几到几的字符 
root:
bin:x
daemo

 sort命令的使用-----排序

   /* sort命令的几个选项:-t分隔符:作用和cut后的-d选项一样  -n:使用纯数字排 -r:反向排序    -u:去重复   -kn1.n2:由区间排序到n2区间,也可以写-kn1,即对n1字段排序*/

 [root@wangxiangzhe wang]# head -n5 passwd1 |sort   //如果sort不加任何选项,则从首字符向后,依次按ASCII码值进行排序,最后将他们升序排列 
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
	[root@wangxiangzhe wang]# head -n5 passwd1 |sort -t: -k3 -n  //-t后是分隔符,对第三行进行排序,-n纯数字排序 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
	[root@wangxiangzhe wang]#  head -n5 passwd1           //先看一下passwd文件的前5行 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@wangxiangzhe wang]#  head -n5 passwd1 |sort -n -u  //对前5行进行纯数字排序 ,然后在去重复  (sort进行-n纯数字排序时,系统会把所有的字母都看成0 
root:x:0:0:root:/root:/bin/bash                          //再加一个-u去重复,就会只剩下一行

/*uniq用来去重复的行,最常用的选项只有一个-c:统计重复的行,并把行数写在前面*/

	[root@wangxiangzhe ~]# vim test.c   //用vim打开一个文件,写入几个数字 
111
222
333
222
444
333
~
	[root@wangxiangzhe ~]# uniq test.c       //直接用uniq命令,发现文件并没有什么变化 
111
222
333
222
444
333
[root@wangxiangzhe ~]# sort test.c |uniq   //先排序,然后在用uniq,故使用uniq的前提是必须给文件排序然后在去重复 
111
222
333
444
[root@wangxiangzhe ~]# sort test.c |uniq -c  //加上-c选项后,会把重复的行数显示在那一行前面 
      1 111
      2 222
      2 333
      1 444

tee命令,后跟文件名/*类似于重定向“>",但是比重定向多了一个功能,在把文件写入后面所跟文件的同时,还显示在屏幕上*/

	[root@wangxiangzhe ~]# echo "aaaaaaaaaa" >test.c  //向test.c文件中重定向 
	[root@wangxiangzhe ~]# cat test.c       //显示重定向后的信息 
      aaaaaaaaaa
    [root@wangxiangzhe ~]# echo "bbbbbbbb" |tee test.c   //tee运算后的结果,把要写的内容在屏幕上显示出来 
      bbbbbbbb
  tr和split命令 
  /*tr用来替换字符,常用来处理文档中出现的特殊字符:-d:删除某个字符,-d后面跟要删除的字符  -s:把重复的字符去掉*/
    [root@wangxiangzhe ~]# head -n 2 /root/wang/passwd1 |tr ‘[a-z]‘ ‘[A-Z]‘  //把文件的前两行的小写字母换成大写字母 
      ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
      BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
    [root@wangxiangzhe ~]# head -n 2 /root/wang/passwd1 |tr ‘a‘ ‘A‘        //把文件中的小写a换为大写的”A“ 
        root:x:0:0:root:/root:/bin/bAsh
        bin:x:1:1:bin:/bin:/sbin/nologin
     split用于切割文档   //   
     [root@wangxiangzhe wang]# ls    
      passwd1
	 [root@wangxiangzhe wang]# split -b 500 /root/wang/passwd1   //切割文档,-b选项依据大小来切割文档,单位为byte 
	 [root@wangxiangzhe wang]# ls     //如果split不指定目标文件名,则会以xaa xab...这样的文件名来存取切割后的文件 
        passwd1  xaa  xab  xac
     [root@wangxiangzhe wang]# split -b 500 /root/wang/passwd1 123  //指定文件名 
     [root@wangxiangzhe wang]# ls
     123aa  123ab  123ac  passwd1  xaa  xab  xac
     [root@wangxiangzhe wang]# wc -l passwd1  //查看文档共有多少行 
       29 passwd1
       [root@wangxiangzhe wang]# split -l 10 passwd1    //-l表示按行数的多少来切割文档 
     [root@wangxiangzhe wang]# wc -l *       // 查看切割后的文档 
      29 passwd1
      10 xaa
      10 xab
      9 xac
      58 总用量


linux系统中cut sort tee 和uniq命令的使用

标签:linux

原文地址:http://zidingyi.blog.51cto.com/10735263/1706422

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!