學(xué)習(xí)一個 Linux 命令:sort 命令
轉(zhuǎn)自:戀貓大鯉魚
鏈接:https://dablelv.blog.csdn.net/article/details/66974323
1.命令簡介
以行為單位對文本文件的內(nèi)容進(jìn)行排序,將結(jié)果顯示在標(biāo)準(zhǔn)輸出,比較原則是從行首字符向后,依次按 ASCII 碼值進(jìn)行比較,最后按升序輸出。如果 file 參數(shù)指定多個文件,那么 sort 命令將這些文件縱向連接起來,當(dāng)作一個文件進(jìn)行排序。
不加任何選項(xiàng)時,將對整行從第一個字符開始依次向后直到行尾按照 ASCII 碼值做升序排序。
2.命令格式
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
3.選項(xiàng)說明
注意,長選項(xiàng)的強(qiáng)制性參數(shù)對于短選項(xiàng)也是強(qiáng)制的。
-b, --ignore-leading-blanks
忽略每行前面的空格字符
-c, --check, --check=diagnose-first
只檢查文件是否已排序,不進(jìn)行排序
-C, --check=quiet, --check=silent
類似于 -c,但不報告第一個亂序的行
-d, --dictionary-order
按照字典序,只考慮字母、數(shù)字及空格字符,忽略其他字符
--files0-from=F
從文件 F 中以 NUL 字符結(jié)尾的字符串作為輸入文件名;如果 F 是 -,則從標(biāo)準(zhǔn)輸入中讀取文件名
-f, --ignore-case
排序時,將小寫字母視為大寫字母
-i, --ignore-nonprinting
排序時,只考慮可打印字符,忽略不可打印字符
-m, --merge
合并多個已排序的文件
-n, --numeric-sort
按數(shù)值大小排序
-o, --output=FILE
將排序結(jié)果輸出到指定文件
-r,--reverse
逆向輸出排序結(jié)果(降序排序)
-t, --field-separator=SEP
指定排序時使用的分隔字符,sort命令默認(rèn)字段分隔符為空格和Tab
-u, --unique
相同的數(shù)據(jù)中,僅輸出一行
-k,--key=POS1[,POS2]
以第 POS1 欄到 POS2 欄排序,默認(rèn)到最后一欄
--help
顯示幫助信息并退出
--version
顯示版本信息并退出
4.常用示例
(1)對 /etc/passwd 進(jìn)行排序。
cat /etc/passwd | sort
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
(2)/etc/passwd 內(nèi)容以冒號:來分隔,以第三欄至行末尾欄來排序。
cat /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
(3)如果對 /etc/passwd,以第六個域的第 2 個字符到第 4 個字符進(jìn)行升序排序,再基于第一個域進(jìn)行反向排序。
cat /etc/passwd | sort -t ':' -k 6.2,6.4 -k 1,1r
sync:x:4:65534:sync:/bin:/bin/sync
proxy:x:13:13:proxy:/bin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
bin:x:3:3:sys:/dev:/bin/sh
可以看出,六個域的第 2 個字符到第 4 個字符是升序排序。六個域的第 2 個字符到第 4 個字符如果相同則分為一組,組內(nèi)再按照第一個域進(jìn)行降序排序。注意,-r 需要與第二個 -k 的 <POS1,POS2> 連寫,否則對前面兩個 -k 均有效。
參考文獻(xiàn)
[1] sort manual
[2] Linux命令大全——sort命令
評論
圖片
表情


