Linux命令之sort命令详解

系统 Linux
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,***将他们按升序输出。

sort命令可以对一个文件中的文本行进行排序。以下几个例子来演示如何使用sort命令,样例文本是雇员数据,格式如下:

employee_name: employee_id: department_name.

$ cat names.txt 
Emma Thomas:100:Marketing 
Alex Jason:200:Sales 
Madison Randy:300:Product Development 
Sanjay Gupta:400:Support 
Nisha Singh:500:Sales

以升序对文本排序

$ sort names.txt 
Alex Jason:200:Sales 
Emma Thomas:100:Marketing 
Madison Randy:300:Product Development 
Nisha Singh:500:Sales 
Sanjay Gupta:400:Support

以降序对文本排序

$ sort -r names.txt 
Sanjay Gupta:400:Support 
Nisha Singh:500:Sales 
Madison Randy:300:Product Development 
Emma Thomas:100:Marketing 
Alex Jason:200:Sales

对一个使用冒号分隔的文件的第二项进行排序(也就是employee_id)

$ sort -t: -k 2 names.txt 
Emma Thomas:100:Marketing
Alex Jason:200:Sales 
Madison Randy:300:Product Development 
Sanjay Gupta:400:Support 
Nisha Singh:500:Sales

对使用tab分隔的第三项进行排序(department_id),并去掉重复项

$ sort -t: -u -k 3 names.txt 
Emma Thomas:100:Marketing 
Madison Randy:300:Product Development 
Alex Jason:200:Sales 
Sanjay Gupta:400:Support

对passwd文件的第三项进行排序(userid)

$ sort -t: -k 3n /etc/passwd | more 
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

基于ip地址对/etc/hosts文件排序

$ sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n /etc/hosts 
127.0.0.1 localhost.localdomain localhost 
192.168.100.101 dev-db.thegeekstuff.com dev-db 
192.168.100.102 prod-db.thegeekstuff.com prod-db 
192.168.101.20 dev-web.thegeekstuff.com dev-web 
192.168.101.21 prod-web.thegeekstuff.com prod-web

与其它命令组合在一起使用

ps –ef | sort : 对进程列表进行排序 
ls -al | sort +4n : 使用升序对ls -al的输出以文件大小进行排序(第5项) 
ls -al | sort +4nr : 使用降序对ls -al的输出以文件大小进行排序(第5项)

【编辑推荐】

  1. 如何在RHEL5.7下搭建和配置DHCP服务器
  2. Linux服务器的16个监控命令
  3. 服务器性能指标:拨开服务器评测体系迷雾
责任编辑:赵宁宁
相关推荐

2012-05-10 08:37:54

Linuxxargs

2012-05-11 10:07:55

Linuxfind

2012-05-10 08:55:11

Linuxuniq

2009-07-31 16:14:27

linux cd命令Linux基本命令

2009-10-22 10:54:51

linux磁盘管理命令

2012-02-29 00:38:29

Linux命令

2009-10-27 14:48:29

linux下正常关机

2014-07-24 11:37:54

LinuxTop命令

2022-09-01 12:17:43

SCSI协议Linux

2017-03-10 15:25:35

Linuxnetstat命令

2020-07-20 07:45:00

Linux

2021-04-14 16:06:42

Linuxchattr命令

2020-08-13 07:38:41

Linux screen命令

2010-06-21 14:31:39

Linux aprop

2009-10-22 11:36:31

linux磁盘管理

2009-08-03 09:20:18

find命令详解find命令linux find命

2010-03-18 16:38:39

Linux命令

2009-10-22 10:59:29

linux磁盘命令

2021-09-07 12:27:34

Linuxchmod命令

2021-11-24 09:55:56

Linuxnohup命令
点赞
收藏

51CTO技术栈公众号