sort 是一個(gè)非常強(qiáng)大且靈活的命令,通過多種選項(xiàng)可以實(shí)現(xiàn)不同的排序需求。在實(shí)際使用時(shí),可以根據(jù)需要選擇不同的選項(xiàng),如按數(shù)字排序、按列排序、逆序排序、去重等。理解這些選項(xiàng)的作用,可以幫助你更高效地處理和分析文本數(shù)據(jù)。
話不多說(shuō)直接上案例:
[root@test sort]# cat test.txt 5 apple 2 banana 8 apple 10 orange 3 banana 1 pear 2 apple
需求是要根據(jù)先根據(jù)第一列再根據(jù)第二列進(jìn)行從小到大排序
sort -k 1,1 -n -k 2,2 test.txt
結(jié)果:
[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的區(qū)別
當(dāng)只寫 -k 1 時(shí),表示從 第一列開始 排序,直到行尾。這意味著整個(gè)行尾的內(nèi)容都會(huì)被作為排序依據(jù),而不僅僅是第一列。
當(dāng)指定 -k 1,1 時(shí),表示只使用 第一列 作為排序依據(jù),不會(huì)涉及行尾的其他內(nèi)容。

-n 是 sort 命令的一個(gè)選項(xiàng),用于按數(shù)值排序。sort默認(rèn)按 ASCII 字符順序進(jìn)行比較,1 和 10 都以字符 1 開頭,因此 10 被認(rèn)為比 2 小。

-r 是 sort 命令的選項(xiàng),用于逆序排序(reverse order)。它將排序結(jié)果反轉(zhuǎn),不論數(shù)據(jù)
是按字典序還是數(shù)值排序。
-u 是 sort 命令的選項(xiàng),用于去除重復(fù)行。在排序過程中,如果有多行內(nèi)容完全相同,
-u 只保留其中的一行。

-o 是 sort 命令的選項(xiàng),用于指定輸出文件。它可以將排序結(jié)果直接保存到一個(gè)文件
而不是打印到標(biāo)準(zhǔn)輸出(終端)。

-t 指定分隔符。默認(rèn)情況下,sort 假定空格或制表符為字段的分隔符,使用 -t 可以指定其他分隔符。

-f 是 sort 命令的選項(xiàng),用于忽略大小寫進(jìn)行排序。它會(huì)將所有的字符都視為相同,
無(wú)論是大寫字母還是小寫字母,都按相同的規(guī)則進(jìn)行比較。

-M 參數(shù)用于 sort 命令中,它實(shí)現(xiàn)了 按月份名稱排序。月份名稱(如 "Jan", "Feb", "Mar" 等)會(huì)按照它們?cè)谀攴葜械膶?shí)際順序進(jìn)行排序,而不是按字母順序排序。

-h 參數(shù)用于 按人類可讀的數(shù)值排序,也就是 human-readable sort。它特別用于處理
帶有單位的數(shù)值(如 1K、2M、3G 等),并能夠根據(jù)這些單位進(jìn)行正確的排序。

如果你想將多個(gè)文件拼接在一起并進(jìn)行排序,可以直接使用 sort 命令。sort 會(huì)按照默認(rèn)的順序?qū)⑺形募膬?nèi)容合并,然后進(jìn)行排序。
sort file1.txt file2.txt:直接排序多個(gè)文件。
cat file1.txt file2.txt | sort:通過管道拼接文件并排序。
sort -o sorted_output.txt file1.txt file2.txt:排序并輸出到新文件。
sort -u file1.txt file2.txt:拼接文件并去重后排序。
配合linux awk命令 刷選排序穩(wěn)穩(wěn)滴~
通過上述眾多案例和選項(xiàng)的詳細(xì)講解,我們能看到 sort 命令在文本處理方面的巨大潛力。熟練掌握 sort 命令,靈活運(yùn)用各種選項(xiàng),能讓你在處理文本數(shù)據(jù)時(shí)更加得心應(yīng)手,大大提高工作效率。在今后的 Linux 操作中,不妨多嘗試用 sort 命令解決問題,挖掘更多實(shí)用技巧。
藍(lán)隊(duì)云官網(wǎng)上擁有完善的技術(shù)支持庫(kù)可供參考,大家可自行查閱,更多技術(shù)問題,可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。更多技術(shù)知識(shí),藍(lán)隊(duì)云期待與你一起探索。