在linux系統(tǒng)使用過程中,提供了sort排序命令,支持常用的排序功能。
常用參數(shù)
sort命令支持很多參數(shù),常用參數(shù)如下:
短參數(shù) | 長參數(shù) | 說明 |
---|---|---|
-n | – number-sort | 按字符串?dāng)?shù)值排序,與-g區(qū)別為不轉(zhuǎn)為浮點數(shù) |
-g | –general-number-sort | 按通用數(shù)值排序,支持科學(xué)計數(shù)法 |
-f | –ignore-case | 忽略大小寫,默認大小寫字母不同 |
-k | –key=POS1[,POS2] | 排序從POS1開始,若指定POS2,則POS2結(jié)束,否則以pos1排序 |
-t | –field-separator=SEP | 指定列的分割符 |
-r | –reverse | 降序排序,默認為升序 |
-h | –human-numeric-sort | 使用易讀性數(shù)字(例如: 2K 1G) |
-u | –unique | 去除重復(fù)的行 |
-o | –output=FILE | 將輸出寫入文件 |
常用用法舉例
1.默認排序
默認情況下,sort命令,以字母序進行文本排序。如下:
[guodong@proxy ~]$ cat word.txt one two three four [guodong@proxy ~]$ sort word.txt four one three two
2.數(shù)字排序
如果想對數(shù)字進行排序,可以使用-n參數(shù)
[guodong@proxy ~]$ cat num.txt 100 20 3 [guodong@proxy ~]$ sort num.txt -n 3 20 100
3.指定列排序
sort排序的時候,可以按字段分割的數(shù)據(jù)進行排序。-t參數(shù)表示行的分割字符,-k表示第幾列。當(dāng)然,可以進行降序排序,-r參數(shù)可以實現(xiàn)。下面是對passwd文件,以冒號(:)進行分割,然后對第三列以數(shù)字方式進行降序排序。
[guodong@proxy ~]$ 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 [guodong@proxy ~]$ 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可以使用易讀性數(shù)字,比如2k,1g,3M這種。sort也支持-h參數(shù)。
比如,du一個文件夾下的目錄大小后,想以文件大小進行排序。由于du -h的結(jié)果是3k,2M,1G這種,不能簡單的按數(shù)字排序。所以,可以使用-h參數(shù)。具體如下:
[guodong@proxy ~]$ du -h 2.0G ./test2 4.0K ./test3 316M ./test 2.3G . [guodong@proxy ~]$ du -h |sort -hr 2.3G . 2.0G ./test2 316M ./test 4.0K ./test3
5.系統(tǒng)進程內(nèi)存占用排序
查看系統(tǒng)進程中,內(nèi)存占用最多的前5個進程信息
[guodong@proxy ~]$ ps aux|sort -gr -k 4|head -n 5 shuanghu 1740 15.7 4.6 1506764 189872 ? Sl 5月07 142:08 compiz root 1304 2.1 1.9 338928 80208 tty7 Ssl+ 5月07 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 5月07 0:00 /usr/lib/evolution/evolution-calendar-factory shuanghu 1833 0.0 0.8 974900 34468 ? Sl 5月07 0:01 nautilus -n shuanghu21110.00.665571224920?Sl5月070:16gnome-terminal
6.對文件內(nèi)容進行去重
如果文件內(nèi)容有很多重復(fù)的,需要進行去重。sort也是支持的,可以通過-u參數(shù)使用
[guodong@proxy ~]$ cat word.txt one two two three three three four four four [guodong@proxy ~]$ sort -u word.txt four one three two
7.將sort輸出內(nèi)容寫入文件
在shell中,一般將控制臺內(nèi)容寫入文件,可以使用重定向,但如果想把sort的排序內(nèi)容寫回文件,則不能使用重定向。則需要-o參數(shù)。具體如下:
[guodong@proxy ~]$ cat word.txt one two three four [guodong@proxy ~]$ sort word.txt > word.txt [guodong@proxy ~]$ cat word.txt #輸出為空 [guodong@proxy ~]$ sort word.txt -o word.txt [guodong@proxy ~]$ sort -u word.txt four one three two
鏈接:https://www.cnblogs.com/my-first-blog-lgz/p/16115664.html
-
Linux
+關(guān)注
關(guān)注
87文章
11320瀏覽量
209846 -
命令
+關(guān)注
關(guān)注
5文章
688瀏覽量
22056 -
排序
+關(guān)注
關(guān)注
0文章
32瀏覽量
9721
原文標(biāo)題:詳解 Linux sort 命令:全面掌握排序技巧與實用案例
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論