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

Linux中使用sort命令排序的完整教學(xué)

 更新時(shí)間:2026年01月19日 08:52:01   作者:鳩摩智首席音效師  
Linux?中的?sort?命令是?GNU?coretils?包的一部分,該命令用于按升序?/?降序?qū)χ付ㄎ募械奈谋拘谢驑?biāo)準(zhǔn)輸入中的文本行進(jìn)行排序,本文將討論?sort?命令的各種可用選項(xiàng)并提供一些實(shí)際示例來說明其用法,需要的可以了解下

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

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

sort 命令的基本語法如下:

sort [options] [file(s)]

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

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

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

讓我們通過一些示例來仔細(xì)研究這些選項(xiàng)。

Sorting File Content

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

sort data.txt

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

sort < data.txt 
cat data.txt | sort

Sorting in Reverse Order

-r 選項(xiàng)用于以相反的順序?qū)斎脒M(jìn)行排序。

sort -r data.txt

Numerical Sorting

-n 選項(xiàng)用于對輸入進(jìn)行數(shù)字排序,當(dāng)對文本數(shù)字進(jìn)行排序時(shí)這個(gè)選項(xiàng)很有用。

sort -n data.txt

Sorting by Field

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

sort -k 2 data.txt

Specifying the Field Separator

-t 選項(xiàng)用于指定按字段排序時(shí)的字段分隔符。默認(rèn)情況下,字段由 空格制表符 分隔。

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

Removing Duplicate Lines

-u 選項(xiàng)用于從排序的輸出中刪除重復(fù)的行。當(dāng)對大文件進(jìn)行排序時(shí),此選項(xiàng)非常有用。

sort -u data.txt

Specifying the Output File

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

sort data.txt -o sorted_data.txt

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

sort data.txt > sorted_data.txt

Combining Multiple Options

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

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

sort -nr data.txt -o reverse_sorted_data.txt

當(dāng)然,你也可以像這樣組合不同的選項(xiàng)。

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

方法補(bǔ)充

sort排序規(guī)則:

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

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進(jìn)行簡單排序,首字母開始依次進(jìn)行比較。

2. 排序后去除重復(fù)的行,使用參數(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

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

3.默認(rèn)排序?yàn)樯蚺判颍褂脜?shù)-r進(jìn)行降序排序

[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

進(jìn)行降序排序,同時(shí)去除重復(fù)項(xiàng)。

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)建。同時(shí)也可以使用重定向符號進(jìn)行輸出。

[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ū)別:

  • 當(dāng)使用重定向符號將排序結(jié)果重定向輸出回源文件進(jìn)行覆蓋時(shí),會出錯(cuò),源文件會被清空。
  • 當(dāng)使用-o參數(shù)時(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ù)值進(jìn)行比較,而并非字符串,使用參數(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ù)則從首字母開始依次進(jìn)行排序;使用-n參數(shù)后則按照數(shù)值進(jìn)行排序;此參數(shù)只適用于純數(shù)字字符串

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

[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列進(jìn)行排序

[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列進(jìn)行排序

[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列進(jìn)行排序

[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默認(rèn)是使用-b參數(shù)的,即默認(rèn)刪除每一行之前的空格,從第一個(gè)非空格數(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

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

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命令排序的完整教學(xué)的文章就介紹到這了,更多相關(guān)Linux sort命令排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決CentOS7下yum失效問題

    解決CentOS7下yum失效問題

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

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

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

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

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

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

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

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

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

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

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

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

    下面小編就為大家?guī)硪黄獪\談Linux配置定時(shí),使用crontab -e與直接編輯/etc/crontab的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    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的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • SSH在登錄服務(wù)器后如何顯示基礎(chǔ)信息

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

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

最新評論

九龙城区| 海伦市| 昌平区| 遂川县| 拉萨市| 湖南省| 报价| 湾仔区| 洞头县| 珲春市| 呼和浩特市| 阳高县| 当雄县| 鄯善县| 屏边| 冷水江市| 玉环县| 噶尔县| 寿宁县| 玛沁县| 安阳市| 合作市| 永修县| 寿宁县| 巫溪县| 新平| 安远县| 凤凰县| 林周县| 深泽县| 尚志市| 德安县| 巴彦淖尔市| 车险| 吉林市| 象山县| 监利县| 达拉特旗| 朝阳市| 平定县| 瓮安县|