sort命令详解

11人阅读 评论(0) 收藏 举报
分类:

在linux的只用过程中,总是避免不了排序问题。比如,topN问题。linux提供了sort排序命令,支持常用的排序功能。

常用参数
sort命令支持很多参数,常用参数如下:
这里写图片描述

常用用法举例

1.默认排序
默认情况下,sort命令,以字母序进行文本排序。如下:

shuanghu@shuanghu:tmp$cat word.txt
one
two 
three
four

shuanghu@shuanghu:tmp$sort word.txt
four
one
three
two

2.数字排序
如果想对数字进行排序,可以使用-n参数

shuanghu@shuanghu:tmp$ cat num.txt 
100
20
3
shuanghu@shuanghu:tmp$ sort num.txt -n
3
20
100

3.指定列排序
sort排序的时候,可以按字段分割的数据进行排序。-t参数表示行的分割字符,-k表示第几列。当然,可以进行降序排序,-r参数可以实现。
下面是对passwd文件,以冒号(:)进行分割,然后对第三列以数字方式进行降序排序。

shuanghu@shuanghu:etc$ cat passwd 
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
shuanghu@shuanghu:etc$ sort -t ':' -k 3 -nr passwd 
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
games:x:5:60:games:/usr/games:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
sys:x:3:3:sys:/dev:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

4.文件夹大小排序
在du的时候,加上-h可以使用易读性数字,比如2k,1g,3M这种。sort也支持-h参数。
比如,du一个文件夹下的目录大小后,想以文件大小进行排序。由于du -h的结果是3k,2M,1G这种,不能简单的按数字排序。所以,可以使用-h参数。具体如下:

shuanghu@shuanghu:tmp$ du -h
2.0G    ./test2
4.0K    ./test3
316M    ./test
2.3G    .
shuanghu@shuanghu:tmp$ du -h |sort -hr
2.3G    .
2.0G    ./test2
316M    ./test
4.0K    ./test3

5.系统进程内存占用排序
查看系统进程中,内存占用最多的前5个进程信息

shuanghu@shuanghu:tmp$ ps aux|sort -gr -k 4|head -n 5
shuanghu  1740 15.7  4.6 1506764 189872 ?      Sl    507 142:08 compiz
root      1304  2.1  1.9 338928 80208 tty7     Ssl+  507  19:29 /usr/bin/X -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
shuanghu  1933  0.0  1.1 1074520 46708 ?       Sl    507   0:00 /usr/lib/evolution/evolution-calendar-factory
shuanghu  1833  0.0  0.8 974900 34468 ?        Sl    507   0:01 nautilus -n
shuanghu  2111  0.0  0.6 655712 24920 ?        Sl    507   0:16 gnome-terminal

6.对文件内容进行去重
如果文件内容有很多重复的,需要进行去重。sort也是支持的,可以通过-u参数使用

shuanghu@shuanghu:tmp$cat word.txt
one
two
two
three
three
three
four
four
four

shuanghu@shuanghu:tmp$sort -u word.txt
four
one
three
two

7.将sort输出内容写入文件
在shell中,一般将控制台内容写入文件,可以使用重定向,但如果想把sort的排序内容写回文件,则不能使用重定向。则需要-o参数。具体如下:

shuanghu@shuanghu:tmp$cat word.txt
one
two 
three
four
shuanghu@shuanghu:tmp$sort word.txt > word.txt
shuanghu@shuanghu:tmp$cat word.txt #输出为空

shuanghu@shuanghu:tmp$sort word.txt -o word.txt
shuanghu@shuanghu:tmp$sort -u word.txt
four
one
three
two
查看评论

linux命令详解:sort

【sort 命令】 sort 命令常用于字段排序。 【常用选项】 用法:sort [选项]... [文件]...  或:sort [选项]... --files0-from=F 串联排序所有指定文...
  • liuruiqun
  • liuruiqun
  • 2016-08-22 20:28:34
  • 1286

Linux下的sort排序命令详解(一)

http://www.cnblogs.com/longjshz/p/5794590.html
  • jf16831207
  • jf16831207
  • 2017-07-25 19:47:40
  • 264

Linux命令:sort的使用方法

1、sort的字段选择sort file        -n : 数值排序        -r : 逆序排序        -t : 字段分隔符        -k ...
  • u010889616
  • u010889616
  • 2015-08-24 14:09:41
  • 600

Linux的 sort 命令详解

# sort --help 用法:sort [选项]... [文件]...  或:sort [选项]... --files0-from=F 串联排序所有指定文件并将结果写到标准输出。 长选项必须使...
  • gaojinshan
  • gaojinshan
  • 2014-11-04 20:32:49
  • 1992

AIX下sort命令简介及使用

sort命令将许多不同的域按不同的列顺序排序,sort命令如下: sort -cmu -o output_file [other options] +pos1 +pos2 input_files -c...
  • BOBO12082119
  • BOBO12082119
  • 2012-12-11 21:51:38
  • 4037

LINUX命令大全详解备忘录

文件目录操作命令 ls命令 cd命令 pwd命令 mkdir命令 rm 命令 rmdir 命令 mv命令 cp 命令 touch 命令 cat 命令 nl命令 more命令 less 命令 head ...
  • hyc489681961
  • hyc489681961
  • 2016-09-09 17:59:38
  • 411

Sort命令详解

linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理   sort将文件的每一行作为一个单...
  • guogaoan
  • guogaoan
  • 2014-08-15 14:36:59
  • 372

sort 命令详解

  • u012662905
  • u012662905
  • 2015-02-10 11:43:38
  • 443

sort命令详解高级语法

sort 相关命令:暂无相关命令 用法:sort [选项]... [文件]...  或:sort [选项]... --files0-from=F 串联排序所有指定文件并将结果写到标准输出。 长选...
  • u010391029
  • u010391029
  • 2016-08-10 20:36:04
  • 1173

linux/unix命令详解之sort

功能说明:将文本文件内容加以排序。 语  法:sort [-bcdfimMnr][-o][-t][+-][--help][--verison][文件] 补充说明:sort可针对文本文件的内容,以行...
  • u012485320
  • u012485320
  • 2013-12-11 17:45:53
  • 292
    个人资料
    持之以恒
    等级:
    访问量: 7395
    积分: 722
    排名: 7万+