0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解Linux sort命令之掌握排序技巧與實用案例

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-01-09 10:10 ? 次閱讀

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux find命令詳解

    find 命令是我們?nèi)粘9ぷ髦斜容^常用的Linux命令。全面的掌握這個命令可以使很多操作達到事半功倍的效果。如果對find
    發(fā)表于 11-30 10:11 ?1597次閱讀

    Linuxsort命令介紹

    1.命令簡介以行為單位對文本文件的內(nèi)容進行排序,將結(jié)果顯示在標(biāo)準(zhǔn)輸出,比較原則是從行首字符向后,依次按 ASCII 碼值進行比較,最后按升序輸出。如果 file 參數(shù)指定多個文件,那么 sort
    發(fā)表于 04-08 07:16

    linux運維命令大全

    Linux高端運維學(xué)習(xí)需要掌握大量的命令及相關(guān)工具,通讀bash man page、掌握VIM使用、了解SSH是Linux高端運維工程師必備
    發(fā)表于 03-15 16:36

    Linux關(guān)機命令詳解

    Linux關(guān)機命令詳解linux下一些常用的關(guān)機/重啟命令有shutdown、halt、reboot、及init,它們都 可以達到重啟
    發(fā)表于 01-18 12:52 ?3633次閱讀

    Linux系統(tǒng)命令及其使用詳解 _120頁

    電子發(fā)燒友網(wǎng)站提供《Linux系統(tǒng)命令及其使用詳解 _120頁.doc》資料免費下載
    發(fā)表于 04-18 13:23 ?3次下載

    linux命令mount (掛載命令詳解

     mount是Linux下的一個命令,它可以將分區(qū)掛接到Linux的一個文件夾下,從而將分區(qū)和該目錄聯(lián)系起來,因此我們只要訪問這個文件夾,就相當(dāng)于訪問該分區(qū)了。
    發(fā)表于 12-11 08:50 ?5.3w次閱讀

    Linux命令詳解 [兼容模式]pdf免費下載

    linux命令詳解pdf,希望對大家有幫助!
    發(fā)表于 12-15 15:54 ?10次下載

    Linux系統(tǒng)中sort排序命令的使用教程

    sort命令的功能是對文件中的各行進行排序sort命令有許多非常實用的選項,這些選項最初是用來對數(shù)據(jù)庫格式的文件內(nèi)容進行各
    發(fā)表于 04-02 14:33 ?414次閱讀

    Linux系統(tǒng)中EXP命令詳解質(zhì)量匯總

    Linux系統(tǒng)中EXP命令詳解質(zhì)量匯總
    發(fā)表于 05-14 09:35 ?1次下載

    Linux虛擬機tcpdump命令操作詳解

    Linux虛擬機tcpdump命令操作詳解
    發(fā)表于 08-12 09:50 ?23次下載

    排序算法merge-sort的基礎(chǔ)知識

    本文介紹、解釋、評估和實現(xiàn)了排序算法merge-sort 。本文的目的是為您提供有關(guān)合并排序算法的可靠背景信息,該算法是更復(fù)雜算法的基礎(chǔ)知識。
    的頭像 發(fā)表于 04-07 17:54 ?2627次閱讀
    <b class='flag-5'>排序</b>算法merge-<b class='flag-5'>sort</b>的基礎(chǔ)知識

    一文掌握Linux常用命令

    一文掌握Linux40個命令
    的頭像 發(fā)表于 04-03 11:38 ?662次閱讀

    使用C++ sort函數(shù)對vector進行自定義排序

    今天在學(xué)一些C++ STL容器,看到sort函數(shù)允許自定義排序規(guī)則,小小地實操了一下。
    的頭像 發(fā)表于 07-22 10:12 ?1683次閱讀

    list.sort()排序比stream().sorted()排序性能更好嗎?

    看到一個評論,里面提到了list.sort()和list.strem().sorted()排序的差異。
    的頭像 發(fā)表于 08-09 10:27 ?985次閱讀
    list.<b class='flag-5'>sort</b>()<b class='flag-5'>排序</b>比stream().sorted()<b class='flag-5'>排序</b>性能更好嗎?

    sort函數(shù)python用法

    sort()函數(shù)是Python中的內(nèi)置函數(shù)之一,用于對可迭代對象進行排序??傻鷮ο蟀斜?、元組和字符串等。sort()函數(shù)是一個靈活而強大的函數(shù),在數(shù)據(jù)分析、算法實現(xiàn)等方面有著廣泛
    的頭像 發(fā)表于 11-21 15:15 ?1459次閱讀