文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>shell学习笔记--sort uniq cut tr split

shell学习笔记--sort uniq cut tr split

时间:2008-12-26  来源:szszszsz

1、sort
sort缺省默认空格和tab键为分隔符。其他方式分隔,使用-t选项。缺省以第1列来排序,即-k1
   -n 指定分类是域上的数字分类。
如编辑文件1111.txt
sdsad   311     315     asd3f
wdasd   551     133     adsff
sdsad   606     44      fgfdgdf
wdwew   77      599     gghgf
eeese   23      22      fgdf
eeese   23      22      fgdf
dfdff   78      55      fdgd
   -k 使用k做分类排序,如按第2列来分类排序
[root@localhost ~]# sort -k2 1111.txt 
eeese   23      22      fgdf
eeese   23      22      fgdf
sdsad   311     315     asd3f
wdasd   551     133     adsff
sdsad   606     44      fgfdgdf
wdwew   77      599     gghgf
dfdff   78      55      fdgd
    -n 指定分类列上按数值来分类排序,如第按第2列数值大小来分类
[root@localhost ~]# sort -k2n 1111.txt
eeese   23      22      fgdf
eeese   23      22      fgdf
wdwew   77      599     gghgf
dfdff   78      55      fdgd
sdsad   311     315     asd3f
wdasd   551     133     adsff
sdsad   606     44      fgfdgdf
    -u 去除重复的行,即完全一样的行,只保留一行
[root@localhost ~]# sort -k2n -u 1111.txt 
eeese   23      22      fgdf         只有1行了
wdwew   77      599     gghgf
dfdff   78      55      fdgd
sdsad   311     315     asd3f
wdasd   551     133     adsff
sdsad   606     44      fgfdgdf

2.uniq
  默认不加参数,重复的行只显示1行
[root@localhost ~]# uniq 1111.txt   
sdsad   311     315     asd3f
wdasd   551     133     adsff
sdsad   606     44      fgfdgdf
wdwew   77      599     gghgf
eeese   23      22      fgdf
dfdff   78      55      fdgd
-u --unique 只显示不是重复出现的行,如下重复的行eeese   23      22      fgdf  被去掉了
[root@localhost ~]# uniq -u 1111.txt
sdsad   311     315     asd3f
wdasd   551     133     adsff
sdsad   606     44      fgfdgdf
wdwew   77      599     gghgf
dfdff   78      55      fdgd

-d, --repeated  只显示重复的行
[root@localhost ~]# uniq -d 1111.txt
eeese   23      22      fgdf
 
-c --count 打印每一重复行出现次数
        [root@localhost ~]# uniq -c 1111.txt  
      1 sdsad   311     315     asd3f
      1 wdasd   551     133     adsff
      1 sdsad   606     44      fgfdgdf
      1 wdwew   77      599     gghgf
      2 eeese   23      22      fgdf
      1 dfdff   78      55      fdgd     

3.cut
    -c 用来指定剪切范围,如下所示:
          -c2,5-8 剪切第2个字符,然后是第5到第8个字符。
          -c1-50 剪切前5 0个字符。
   -f field 指定剪切域数,如下所示
         -f3,5 剪切第3域,第5域。
         -f2,8-10 剪切第2域,第8域到第10域。
4.tr
把小写字母换成大写
   tr  "[a-z]" "[A-Z]"  <1111.txt
把单个空格换成tab键
   tr " " "\t" <1111.txt
把多个空格换成tab键
   tr -s " " "\t" <1111.txt

5.split
有一文件aaa.sql,有3532行。大小2675K
[root@localhost ~]# wc -l aaa.sql
3532 aaa.sql
[root@localhost ~]# ll aaa.sql
-rw-r--r-- 1 root root 2675086 12-28 04:36 aaa.sql
split不加参数,默认以1000行一个文件分割,文件名以xaa,xab,xac....
加-l参数,以1500行分割文件
[root@localhost ~]# split -l 1500 aaa.sql
[root@localhost ~]# wc -l xa*
   1500 xaa
   1500 xab
    532 xac
   3532 总计
以文件大小来分割-b参数,以1M来分割文件
[root@localhost ~]# split -b 1m aaa.sql
[root@localhost ~]# ll xa*
-rw-r--r-- 1 root root 1048576 12-28 04:48 xaa
-rw-r--r-- 1 root root 1048576 12-28 04:48 xab
-rw-r--r-- 1 root root  577934 12-28 04:48 xac
以800k来分割文件
[root@localhost ~]# split -b 800k aaa.sql
[root@localhost ~]# ll xa*              
-rw-r--r-- 1 root root 819200 12-28 04:49 xaa
-rw-r--r-- 1 root root 819200 12-28 04:49 xab
-rw-r--r-- 1 root root 819200 12-28 04:49 xac
-rw-r--r-- 1 root root 217486 12-28 04:49 xad
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载