- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
sort 是一個非常強大且靈活的命令,通過多種選項可以實現不同的排序需求。在實際使用時,可以根據需要選擇不同的選項,如按數字排序、按列排序、逆序排序、去重等。理解這些選項的作用,可以幫助你更高效地處理和分析文本數據。
話不多說直接上案例:
[root@test sort]# cat test.txt 5 apple 2 banana 8 apple 10 orange 3 banana 1 pear 2 apple
需求是要根據先根據第一列再根據第二列進行從小到大排序
sort -k 1,1 -n -k 2,2 test.txt
結果:
[root@test sort]# sort -k 1,1n -k 2,2 test.txt 1 pear 2 apple 2 banana 3 banana 5 apple 8 apple 10 orange
過程:
sort -k 1跟sort -k 1,1的區別
當只寫 -k 1 時,表示從 第一列開始 排序,直到行尾。這意味著整個行尾的內容都會被作為排序依據,而不僅僅是第一列。
當指定 -k 1,1 時,表示只使用 第一列 作為排序依據,不會涉及行尾的其他內容。
-n 是 sort 命令的一個選項,用于按數值排序。sort默認按 ASCII 字符順序進行比較,1 和 10 都以字符 1 開頭,因此 10 被認為比 2 小。
-r 是 sort 命令的選項,用于逆序排序(reverse order)。它將排序結果反轉,不論數據
是按字典序還是數值排序。
-u 是 sort 命令的選項,用于去除重復行。在排序過程中,如果有多行內容完全相同,
-u 只保留其中的一行。
-o 是 sort 命令的選項,用于指定輸出文件。它可以將排序結果直接保存到一個文件
而不是打印到標準輸出(終端)。
-t 指定分隔符。默認情況下,sort 假定空格或制表符為字段的分隔符,使用 -t 可以指定其他分隔符。
-f 是 sort 命令的選項,用于忽略大小寫進行排序。它會將所有的字符都視為相同,
無論是大寫字母還是小寫字母,都按相同的規則進行比較。
-M 參數用于 sort 命令中,它實現了 按月份名稱排序。月份名稱(如 "Jan", "Feb", "Mar" 等)會按照它們在年份中的實際順序進行排序,而不是按字母順序排序。
-h 參數用于 按人類可讀的數值排序,也就是 human-readable sort。它特別用于處理
帶有單位的數值(如 1K、2M、3G 等),并能夠根據這些單位進行正確的排序。
如果你想將多個文件拼接在一起并進行排序,可以直接使用 sort 命令。sort 會按照默認的順序將所有文件的內容合并,然后進行排序。
sort file1.txt file2.txt:直接排序多個文件。
cat file1.txt file2.txt | sort:通過管道拼接文件并排序。
sort -o sorted_output.txt file1.txt file2.txt:排序并輸出到新文件。
sort -u file1.txt file2.txt:拼接文件并去重后排序。
配合linux awk命令 刷選排序穩穩滴~
通過上述眾多案例和選項的詳細講解,我們能看到 sort 命令在文本處理方面的巨大潛力。熟練掌握 sort 命令,靈活運用各種選項,能讓你在處理文本數據時更加得心應手,大大提高工作效率。在今后的 Linux 操作中,不妨多嘗試用 sort 命令解決問題,挖掘更多實用技巧。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP