最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中使用sort命令排序的完整教學

 更新時間:2026年01月19日 08:52:01   作者:鳩摩智首席音效師  
Linux?中的?sort?命令是?GNU?coretils?包的一部分,該命令用于按升序?/?降序?qū)χ付ㄎ募械奈谋拘谢驑藴瘦斎胫械奈谋拘羞M行排序,本文將討論?sort?命令的各種可用選項并提供一些實際示例來說明其用法,需要的可以了解下

Linux 中的 sort 命令是 GNU coretils 包的一部分。該命令用于按升序 / 降序?qū)χ付ㄎ募械奈谋拘谢驑藴瘦斎胫械奈谋拘羞M行排序。排序后的輸出可以寫入文件或顯示在標準輸出中。sort 命令是一個簡單而強大的具,可用于各種場景,從對文件中的數(shù)據(jù)進行排序到進一步分析和準備數(shù)據(jù)。

在本文中,我們將討論 sort 命令的各種可用選項,并提供一些實際示例來說明其用法。

sort 命令的基本語法如下:

sort [options] [file(s)]

該命令提供了各種選項,可用于自定義排序過程和需要排序的文件。如果沒有指定文件,sort 命令將根據(jù)標準輸入(即鍵盤)對輸入進行排序。

以下是 Unix / Linux 系統(tǒng)中 sort 命令的一些常用選項:

  • -r : 將輸入按相反順序排序
  • -n :對輸入進行數(shù)字排序
  • -k :根據(jù)特定字段或列對輸入進行排序
  • -b :忽略前面的空格
  • -t :指定字段分隔符
  • -u :從輸出中刪除重復的行
  • -o :指定輸出文件

讓我們通過一些示例來仔細研究這些選項。

Sorting File Content

默認根據(jù)第一個字符按升序排序,您可以簡單地鍵入 sort 命令,后跟文件名。

sort data.txt

還可以使用以下命令為該命令提供輸入。

sort < data.txt 
cat data.txt | sort

Sorting in Reverse Order

-r 選項用于以相反的順序?qū)斎脒M行排序。

sort -r data.txt

Numerical Sorting

-n 選項用于對輸入進行數(shù)字排序,當對文本數(shù)字進行排序時這個選項很有用。

sort -n data.txt

Sorting by Field

-k 選項用于根據(jù)特定字段或列對輸入進行排序。此選項在對表格數(shù)據(jù)進行排序時非常有用,其中每一行
表示記錄,字段由特定分隔符分隔。字段號是通過選項指定的,字段是從 1 開始編號。

sort -k 2 data.txt

Specifying the Field Separator

-t 選項用于指定按字段排序時的字段分隔符。默認情況下,字段由 空格制表符 分隔。

sort -t "," -k 2 data.txt

Removing Duplicate Lines

-u 選項用于從排序的輸出中刪除重復的行。當對大文件進行排序時,此選項非常有用。

sort -u data.txt

Specifying the Output File

-o 選項用于指定輸出文件,將排序后的數(shù)據(jù)保存到另一個文件而不是顯示在屏幕上。

sort data.txt -o sorted_data.txt

您還可以使用 > 操作符將內(nèi)容寫入文件。

sort data.txt > sorted_data.txt

Combining Multiple Options

您可以組合不同的選項來排序結(jié)果。

例如,將文件按數(shù)字倒序排序并保存結(jié)果到一個新文件。

sort -nr data.txt -o reverse_sorted_data.txt

當然,你也可以像這樣組合不同的選項。

sort -t "," -k 2,3 -u data.txt

方法補充

sort排序規(guī)則:

  • 以行為單位,每一行作為一個字符串
  • 按照字符串的比較規(guī)則,首字母開始依次向后按ASCII碼值進行比較
  • 結(jié)果默認升序輸出

1. 簡單排序

[root@linuxforliuhj test]# cat test.txt 
aaa:cde
bbb:dse
ccc:123
abc:rew
acb:1we
111:fdf
222:esa
333:iud
[root@linuxforliuhj test]# sort test.txt
111:fdf
222:esa
333:iud
aaa:cde
abc:rew
acb:1we
bbb:dse
ccc:123

使用sort進行簡單排序,首字母開始依次進行比較。

2. 排序后去除重復的行,使用參數(shù)-u(unique)

[root@linuxforliuhj test]# cat test.txt 
aaa:cde
aaa:cde
bbb:dse
ccc:123
abc:rew
abc:rew
abc:rew
acb:1we
111:fdf
222:esa
333:iud
[root@linuxforliuhj test]# sort -u test.txt
111:fdf
222:esa
333:iud
aaa:cde
abc:rew
acb:1we
bbb:dse
ccc:123

排序后將重復的行aaa:cde和abc:rew去重只保留一行。

3.默認排序為升序排序,使用參數(shù)-r進行降序排序

[root@linuxforliuhj test]# cat test.txt    
aaa:cde
aaa:cde
bbb:dse
ccc:123
abc:rew
abc:rew
abc:rew
acb:1we
111:fdf
222:esa
333:iud
[root@linuxforliuhj test]# sort -u -r test.txt
ccc:123
bbb:dse
acb:1we
abc:rew
aaa:cde
333:iud
222:esa
111:fdf

進行降序排序,同時去除重復項。

4.將排序結(jié)果輸出到指定文件,使用參數(shù)-o(out)

[root@linuxforliuhj test]# sort -u -r test.txt -o /test/test_1.txt
[root@linuxforliuhj test]# cat test_1.txt 
ccc:123
bbb:dse
acb:1we
abc:rew
aaa:cde
333:iud
222:esa
111:fdf

將排序的結(jié)果輸出到文件test_1.txt文件中,如果輸出文件不存在會自動創(chuàng)建。同時也可以使用重定向符號進行輸出。

[root@linuxforliuhj test]# sort -u -r test.txt > /test/test_2.txt
[root@linuxforliuhj test]# cat test_2.txt 
ccc:123
bbb:dse
acb:1we
abc:rew
aaa:cde
333:iud
222:esa
111:fdf

參數(shù)-o和重定向符號的唯一區(qū)別:

  • 當使用重定向符號將排序結(jié)果重定向輸出回源文件進行覆蓋時,會出錯,源文件會被清空。
  • 當使用-o參數(shù)時,則能夠正常覆蓋回源文件。
[root@linuxforliuhj test]# sort -u -r test.txt > /test/test.txt
[root@linuxforliuhj test]# ll -d /test/test.txt
-rw-r--r--. 1 root root 0 Oct 25 20:06 /test/test.txt
[root@linuxforliuhj test]# cat test.txt
[root@linuxforliuhj test]# 
[root@linuxforliuhj test]# sort -u -r test.txt -o /test/test.txt 
[root@linuxforliuhj test]# cat test.txt
ccc:123
bbb:dse
acb:1we
abc:rew
aaa:cde
333:iud
222:esa
111:fdf
[root@linuxforliuhj test]#

5.以數(shù)值進行比較,而并非字符串,使用參數(shù)-n(number)

[root@linuxforliuhj test]# cat test_n.txt  
12322
54
735
9
[root@linuxforliuhj test]#
[root@linuxforliuhj test]# sort test_n.txt
12322
54
735
9
[root@linuxforliuhj test]# sort -n test_n.txt 
9
54
735
12322

未使用-n參數(shù)則從首字母開始依次進行排序;使用-n參數(shù)后則按照數(shù)值進行排序;此參數(shù)只適用于純數(shù)字字符串。

6.將每一行按照指定字符分割以后,選擇其中的某一列進行排序,使用-t參數(shù)指定分割符,使用-k參數(shù)指定按照分割后的哪一列進行排序。

[root@linuxforliuhj test]# cat test.txt                
asd:34w:dsw
ccc:123:343
bbb:123:dfe
aab:1we:hiu
abc:lwe:htt
aaa:cde:lpu
333:esa:qas
222:esa:ase
111:fdf:cxs

以:分割每一行并按照第1列進行排序

[root@linuxforliuhj test]# sort -t ':' -k 1 test.txt  
111:fdf:cxs
222:esa:ase
333:esa:qas
aaa:cde:lpu
aab:1we:hiu
abc:lwe:htt
asd:34w:dsw
bbb:123:dfe
ccc:123:343

以:分割每一行并按照第2列進行排序

[root@linuxforliuhj test]# sort -t ':' -k 2 test.txt
ccc:123:343
bbb:123:dfe
aab:1we:hiu
asd:34w:dsw
aaa:cde:lpu
222:esa:ase
333:esa:qas
111:fdf:cxs
abc:lwe:htt

以:分割每一行并按照第3列進行排序

[root@linuxforliuhj test]# sort -t ':' -k 3 test.txt
ccc:123:343
222:esa:ase
111:fdf:cxs
bbb:123:dfe
asd:34w:dsw
aab:1we:hiu
abc:lwe:htt
aaa:cde:lpu
333:esa:qas

7.sort命令適用于管道符

[root@linuxforliuhj test]# cat test.txt
ccccc
bdsdsad
adsfwe
gdgsdf
we
w

dsafswqeqw
jhhtyty
[root@linuxforliuhj test]# cat test.txt | sort

adsfwe
bdsdsad
ccccc
dsafswqeqw
gdgsdf
jhhtyty
w
we
[root@linuxforliuhj test]# cat test.txt | sort -r
we
w
jhhtyty
gdgsdf
dsafswqeqw
ccccc
bdsdsad
adsfwe

[root@linuxforliuhj test]#

8.注意

注意:

【1】sort還有一些其他的不常用的參數(shù),例如-f,-b , -c, -C等

【2】sort默認是使用-b參數(shù)的,即默認刪除每一行之前的空格,從第一個非空格數(shù)據(jù)開始比較

[root@linuxforliuhj test]# cat te.txt 
hello this is
 hello this is
hellothis is
hello this a
[root@linuxforliuhj test]# sort te.txt      
hello this a
 hello this is
hello this is
hellothis is

可以看出默認的sort命令忽略每一行第一個字符之前的空格,而并非整行所有的空格!

9.忽略大小寫參數(shù)-f引發(fā)的奇怪現(xiàn)象

[root@linuxforliuhj test]# cat hello.sh 
A
a
B
b
d
D
e
E
[root@linuxforliuhj test]# sort hello.sh    
a
A
b
B
d
D
e
E
[root@linuxforliuhj test]# sort -f hello.sh 
A
a
B
b
D
d
E
e

到此這篇關(guān)于Linux中使用sort命令排序的完整教學的文章就介紹到這了,更多相關(guān)Linux sort命令排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決CentOS7下yum失效問題

    解決CentOS7下yum失效問題

    CentOS 7正式結(jié)束生命周期(EOL),官方也終止了所有支持,但我們服務(wù)用的都是CentOS7 ,也不會輕易升級,這一問題如何解決呢,下面小編就來和大家詳細講講
    2025-06-06
  • 嵌入式Linux開發(fā)環(huán)境搭建ping、nfs的解決方法

    嵌入式Linux開發(fā)環(huán)境搭建ping、nfs的解決方法

    在本篇文章里小編給大家整理了關(guān)于嵌入式Linux開發(fā)環(huán)境搭建ping、nfs的解決方法,需要的朋友們學習參考下。
    2019-07-07
  • Linux?AMH?服務(wù)器管理面板遠程訪問的操作方法

    Linux?AMH?服務(wù)器管理面板遠程訪問的操作方法

    AMH?是一款基于?Linux?系統(tǒng)的服務(wù)器管理面板,它提供了一系列的功能,包括網(wǎng)站管理、FTP?管理、數(shù)據(jù)庫管理、DNS?管理、SSL?證書管理等,本文介紹在Linux?中安裝AMH面板并結(jié)合Cpolar?內(nèi)網(wǎng)穿透工具實現(xiàn)遠程訪問,感興趣的朋友一起看看吧
    2023-11-11
  • linux實現(xiàn)對.jar文件的配置文件進行修改

    linux實現(xiàn)對.jar文件的配置文件進行修改

    文章講述了如何使用Linux系統(tǒng)修改.jar文件的配置文件,包括進入文件夾、編輯文件、保存并退出編輯器,以及重新啟動項目
    2025-11-11
  • 關(guān)于linux服務(wù)器下vsftpd的一些問題

    關(guān)于linux服務(wù)器下vsftpd的一些問題

    針對我自己本身出現(xiàn)的問題,將高人與我的QQ聊天記錄整理了一份,然后再加上實際的操作.終于讓我大徹大悟.現(xiàn)在與大家狠狠的分享這位高人的成果.
    2010-06-06
  • linux中Centos7增加swap分區(qū)詳解

    linux中Centos7增加swap分區(qū)詳解

    本篇文章給大家詳細講解了linux中Centos7增加swap分區(qū)的方法以及注意點,需要的朋友學習下。
    2018-02-02
  • 淺談Linux配置定時,使用crontab -e與直接編輯/etc/crontab的區(qū)別

    淺談Linux配置定時,使用crontab -e與直接編輯/etc/crontab的區(qū)別

    下面小編就為大家?guī)硪黄獪\談Linux配置定時,使用crontab -e與直接編輯/etc/crontab的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • Linux下解壓.tar.xz格式文件的方法

    Linux下解壓.tar.xz格式文件的方法

    最近下載到了一份tar.xz結(jié)尾的壓縮文件,網(wǎng)上解決的方法比較少,所以決定將解決的方法總結(jié)下來,這篇文章主要給大家介紹了在Linux下解壓.tar.xz格式文件的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • centos6-7 yum安裝php的方法(推薦)

    centos6-7 yum安裝php的方法(推薦)

    這篇文章主要介紹了centos6-7 yum安裝php的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • SSH在登錄服務(wù)器后如何顯示基礎(chǔ)信息

    SSH在登錄服務(wù)器后如何顯示基礎(chǔ)信息

    這篇文章主要介紹了SSH在登錄服務(wù)器后如何顯示基礎(chǔ)信息的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。
    2017-06-06

最新評論

镇原县| 和龙市| 镇原县| 长治县| 沅江市| 天台县| 永修县| 且末县| 靖州| 武陟县| 滨州市| 扶风县| 宿迁市| 团风县| 洪泽县| 连平县| 峨山| 云林县| 宣威市| 岗巴县| 江都市| 南皮县| 南漳县| 鹰潭市| 余江县| 罗甸县| 偃师市| 博白县| 惠州市| 定州市| 平谷区| 绥化市| 张家界市| 奉贤区| 彭水| 高平市| 桃江县| 汝城县| 玉树县| 迁安市| 乐亭县|