IP

LINUX HACK 23

Hack 23. Sort Command



Sort command sorts the lines of a text file. Following are several practical examples on how to use the sort command based on the following sample text file that has employee information in the format:


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 a text file in ascending order



$ 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 a text file in descending order


$ 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



Sort a colon delimited text file on 2nd field (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



Sort a tab delimited text file on 3rd field (department_name) and suppress duplicates


$ sort -t: -u -k 3 names.txt

Emma Thomas:100:Marketing

Madison Randy:300:Product Development


Alex Jason:200:Sales


Sanjay Gupta:400:Support


Sort the passwd file by the 3rd field (numeric 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


Sort /etc/hosts file by ip-addres


$ 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


Combine sort with other commands



o ps –ef | sort : Sort the output of process list


o ls -al | sort +4n : List the files in the ascending order of the file-size. i.e sorted by 5th filed and displaying smallest files first.


ls -al | sort +4nr : List the files in the descending order of the file-size. i.e sorted by 5th filed and displaying largest files first.

0 comments:

Post a Comment