Linux命令之sort命令詳解
sort將文件的每一行作為一個單位,相互比較,比較原則是從首字符向后,依次按ASCII碼值進(jìn)行比較,***將他們按升序輸出。
sort命令可以對一個文件中的文本行進(jìn)行排序。以下幾個例子來演示如何使用sort命令,樣例文本是雇員數(shù)據(jù),格式如下:
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
以升序?qū)ξ谋九判?/p>
$ sort names.txt
Alex Jason:200:Sales
Emma Thomas:100:Marketing
Madison Randy:300:Product Development
Nisha Singh:500:Sales
Sanjay Gupta:400:Support
以降序?qū)ξ谋九判?/p>
$ 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
對一個使用冒號分隔的文件的第二項進(jìn)行排序(也就是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分隔的第三項進(jìn)行排序(department_id),并去掉重復(fù)項
$ 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文件的第三項進(jìn)行排序(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 : 對進(jìn)程列表進(jìn)行排序
ls -al | sort +4n : 使用升序?qū)s -al的輸出以文件大小進(jìn)行排序(第5項)
ls -al | sort +4nr : 使用降序?qū)s -al的輸出以文件大小進(jìn)行排序(第5項)
【編輯推薦】