AIX下sort命令简介及使用
2012-12-11 21:51
441 查看
sort命令将许多不同的域按不同的列顺序排序,sort命令如下: sort -cmu -o output_file [other options] +pos1 +pos2 input_files -c:测试文件是否已经排序 -m:合并两个排序文件 -u:删除所有重复行 -o:存储sort结果的输出文件名 其他选项: -b:使用域进行排序时,忽略第一个空格 -n:指定排序是域上的数字排序 -t:域分隔符,用非空格或tab键分隔域 -r:反序或者逆序 +n:n为域号,使用此域号开始排序 n:n为域号,在排序比较时忽略次域,一般与+n一起使用 pos1:传递到m,n;m为域号,n为开始排序字符数; 例如4,6为第5个域,从第7个字符开始 域分隔符:默认情况下,sort认为一个空格或一系列空格为分隔符; 排序键,第一个域就是排序键1,第二个域就是排序键2,依次类推。 排序的时候,先按排序键1排序,接着按照排序键2排序,依次类推。 排序的时候,每个域中按照字符或者数字或者符号的ASCII码进行比较,空格的ASCII为32。 按照数值域进行分类,在域号后面加n。 文件video.txt pg video.txt Boys in Company C:HK:192:2192 Alien:HK:119:1982 The Hill:KL:63:2972 Aliens:HK:532:4892 Star Wars:HK:301:4102 A Few Good Men:KL:445:5851 Toy Story:HK:239:3972 A google:HK 其中“:”为域分隔符号,下面使用"-t:"标识相连的域之间以":"分隔。 正序排列: pg video.txt Boys in Company C:HK:192:2192 Alien:HK:119:1982 The Hill:KL:63:2972 Aliens:HK:532:4892 Star Wars:HK:301:4102 A Few Good Men:KL:445:5851 Toy Story:HK:239:3972 A google:HK 逆序排列: sort -t: -r video.txt Toy Story:HK:239:3972 The Hill:KL:63:2972 Star Wars:HK:301:4102 Boys in Company C:HK:192:2192 Aliens:HK:532:4892 Alien:HK:119:1982 A google:HK A Few Good Men:KL:445:5851 按指定域排列 第一个域: sort -t: +1 video.txt A google:HK Alien:HK:119:1982 Boys in Company C:HK:192:2192 Toy Story:HK:239:3972 Star Wars:HK:301:4102 Aliens:HK:532:4892 ① A Few Good Men:KL:445:5851 ② The Hill:KL:63:2972 第二个域: sort -t: +2 video.txt A google:HK Alien:HK:119:1982 Boys in Company C:HK:192:2192 Toy Story:HK:239:3972 Star Wars:HK:301:4102 A Few Good Men:KL:445:5851 ② Aliens:HK:532:4892 ① The Hill:KL:63:2972 第三个域: sort -t: +3n video.txt A google:HK Alien:HK:119:1982 Boys in Company C:HK:192:2192 The Hill:KL:63:2972 Toy Story:HK:239:3972 Star Wars:HK:301:4102 Aliens:HK:532:4892 A Few Good Men:KL:445:5851 去除重复的行,我们先给文件增加重复的行: pg video.txt Boys in Company C:HK:192:2192 ... A google:HK A google:HK 使用-u选项去除重复的行: sort -u video.txt A Few Good Men:KL:445:5851 A google:HK Alien:HK:119:1982 Aliens:HK:532:4892 Boys in Company C:HK:192:2192 Star Wars:HK:301:4102 The Hill:KL:63:2972 Toy Story:HK:239:3972 使用k做键值排序,按顺序给域编号,第一个域为k1,第二个域为k2,依次类推。 先按照第4个域排序,在按照第1个域进行排序 sort -t: -r -k4 -k1 video.txt A Few Good Men:KL:445:5851 Aliens:HK:532:4892 Star Wars:HK:301:4102 Toy Story:HK:239:3972 The Hill:KL:63:2972 Boys in Company C:HK:192:2192 Alien:HK:119:1982 ① A google:HK:301:1982 ② A google:HK pos的用法:指定域中字母的位置。 格式:sort +field_number.characters_in 意思:从field_number的第characters_in个字符开始排序 例如: Field0 Field1 Field2 Field3 Aliens H K 1 L 532 4892 0 1 2 3 sort -t: +1.2 video.txt Aliens:HK1l:532:4892 A google:HK10:301:1982 The Hill:KL23:63:2972 Star Wars:HK38:301:4102 Boys in Company C:HK48:192:2192 Alien:HK57:119:1982 Toy Story:HK65:239:3972 A Few Good Men:KL87:445:5851 域标识从0开始,第一个域的下标为0,类似c语言中的数组下标从0开始。 从第一个域的第二个字符开始排序: sort -t: +0.1 video.txt A Few Good Men:KL87:445:5851 A google:HK10:301:1982 The Hill:KL23:63:2972 Alien:HK57:119:1982 Aliens:HK1l:532:4892 Toy Story:HK65:239:3972 Boys in Company C:HK48:192:2192 Star Wars:HK38:301:4102 显示排序后的开始几行或者最后几行 按第4个域进行排序,然后显示前2行: sort -t: -k4 video.txt | head -2 A google:HK10:301:1982 Alien:HK57:119:1982 从第1个域的第三个字符开始排序,查看最后1行数据: sort -t: +0.2 video.txt |tail -1 Boys in Company C:HK48:192:2192 另外,通过head和tail命令还可以查看文件的头或者尾部一行或多行数据。 pg video.txt Boys in Company C:HK48:192:2192 Alien:HK57:119:1982 The Hill:KL23:63:2972 Aliens:HK1l:532:4892 Star Wars:HK38:301:4102 A Few Good Men:KL87:445:5851 Toy Story:HK65:239:3972 A google:HK10:301:1982 1.查看video.txt文件的头3行: head -3 video.txt Boys in Company C:HK48:192:2192 Alien:HK57:119:1982 The Hill:KL23:63:2972 2.查看video.txt文件的最后2行: tail -2 video.txt Toy Story:HK65:239:3972 A google:HK10:301:1982 3.head和tail命令,若没指定显示行的话,默认显示10行。 结合awk命令使用: sort -t: -k4 video.txt | tail -1 | awk -F: '{print "The highest is " $4}' The highest is 5851 使用-m将两个文件合并,格式:sort -m file1 file2 pg video2.txt Crimson Tide:134:2031 Die Hard:152:2981 pg video.txt Boys in Company C:HK48:192:2192 Alien:HK57:119:1982 The Hill:KL23:63:2972 Aliens:HK1l:532:4892 Star Wars:HK38:301:4102 A Few Good Men:KL87:445:5851 Toy Story:HK65:239:3972 A google:HK10:301:1982 合并:sort -t: -m video2.txt video.txt Boys in Company C:HK48:192:2192 Alien:HK57:119:1982 Crimson Tide:134:2031 ① Die Hard:152:2981 ② The Hill:KL23:63:2972 Aliens:HK1l:532:4892 Star Wars:HK38:301:4102 A Few Good Men:KL87:445:5851 Toy Story:HK65:239:3972 A google:HK10:301:1982 查看磁盘信息,并按照第四个域排序 df | sort +4 /dev/boot 30720 10693 20027 35% /stand /dev/root 72986472 48856763 24129709 67% / Filesystem 1024-blocks Used Available Capacity Mounted on 下面IP地址中,对IP进行排序。 pg iplist 191.168.1.55 Scott 191.168.2.36 Tim Cook 191.168.2.56 Davaid 191.168.1.80 Albert 191.168.1.20 Thomas 191.168.2.155 _yeeXun 191.168.2.253 J.Wong 下面对ip地址进行排序,以"."作为分隔符,分隔出4个域; 先按照第3个域排序,再按照第4个域进行排序, 注意:数字域0表示第一个域,后跟着字母"n"。 sort -t. +2n +3n iplist 191.168.1.20 Thomas 191.168.1.55 Scott 191.168.1.80 Albert 191.168.2.155 _yeeXun 191.168.2.253 J.Wong 191.168.2.36 Tim Cook 191.168.2.56 Davaid--the end--
相关文章推荐
- AIX下sort命令简介及使用
- AIX下test命令简介及使用
- AIX下uniq命令简介及使用
- AIX下cut命令简介及使用
- AIX下paste命令简介及使用
- yum命令使用简介
- Consul 简介、安装、常用命令的使用
- android的m、mm、mmm编译命令的使用简介
- linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下
- IBM-AIX系统使用基本命令
- sqlite 简介 命令 数据库 使用 教程
- Redis Sort 命令简介
- AIX常用命令及VI的使用
- 在AIX下修改使用自己已经使用过的命令
- ffmpeg 使用命令简介
- Linux 的sort命令使用
- adb命令使用简介
- RubyGems简介和使用 ruby+gem常用命令
- 使用sort命令将重复的行去除
- sort、uniq、comm命令使用---待完善