亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線(xiàn)咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

 

一、 介紹

sort命令是用來(lái)對(duì)文字內(nèi)容(文檔)排序使用的。同時(shí)也可以排序去重、指定字段排序,按照月份排序、按照數(shù)字排序,檢查文件是否有序等等。默認(rèn)情況是按照字典序排序以后標(biāo)準(zhǔn)輸出到屏幕上,但是該命令不會(huì)修改原來(lái)的文檔內(nèi)容。sort命令通常和uniq命令以及wc命令一起使用。

二、 用法

 sort [OPTION]... [FILE]...

選項(xiàng)解釋?zhuān)?/p>

-b 忽略開(kāi)頭空格(空白),默認(rèn)
-f 將所有小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母排序
-g 數(shù)字類(lèi)型排序,效果同 -n
-n 字符串?dāng)?shù)字按照數(shù)字排序, 效果同-g
-h 以人類(lèi)可以閱讀(理解)的形式排序
-c 檢查是否排序完成
-m 合并兩個(gè) 文件排序
-r 降序(逆序)
-o 將排序以后的內(nèi)容保存文件
-k 找到指定的列排序,下標(biāo)從1開(kāi)始
-u 排序以后去除重復(fù)行
-t 默認(rèn)情況下的分隔符為空白符(空格、制表符等),使用-t可以自定義指定分隔符
-M 按照月份排序

三、 案例

3.0 默認(rèn)排序

假如month.txt 文件內(nèi)容如下:

[root@dongjing sort]# cat month.txt
Jun
Apr
Sep
Jul
Aug

默認(rèn)排序(不加任何的選項(xiàng))

[root@dongjing sort]# sort month.txt
Apr
Aug
Jul
Jun
Sep

默認(rèn)按照字典序排列

3.1 按照月份排序

[root@dongjing sort]# sort -M month.txt
Apr
Jun
Jul
Aug
Sep

默認(rèn)排序只是按照字典序排序,但是對(duì)于月份來(lái)說(shuō)并不能符合我們的要求,所以我們使用 -M 按照月份排序

3.2 按照人類(lèi)閱讀排序

假如我們有一個(gè)size.txt文件內(nèi)容如下,我們排序以后可以得到按照大小排序

[root@dongjing sort]# cat size.txt
2G
30K
9M
300B
30K
22M

排序

[root@dongjing sort]# sort -h size.txt
300B
30K
30K
9M
22M
2G

3.3 排序去重

通過(guò)3.2我們看到size.txt文件中30K這個(gè)有重復(fù),我們能不能排序的時(shí)候就把重復(fù)行進(jìn)行去重呢??梢酝ㄟ^(guò) -u 選項(xiàng)來(lái)完成。

[root@dongjing sort]# sort -hu size.txt
300B
30K
9M
22M
2G

注意: 這里-h 一定要加的,保證按照數(shù)字排序。

3.4 倒序(翻轉(zhuǎn)排序)

我們要將size.txt按照從大到小的順序排序,怎么實(shí)現(xiàn)呢?可以使用-r 翻轉(zhuǎn)原來(lái)排序的順序,原先是從小到大,翻轉(zhuǎn)以后就是從大到小了呢。

[root@dongjing sort]# sort -hr size.txt
2G
22M
9M
30K
30K
300B

3.5 保存排序以后的內(nèi)容到文件中

將size.txt排序以后的結(jié)果保存的size_sorted.txt 文件中。

保存成文件我們可以使用 > 來(lái)完成,也可以使用-o 選項(xiàng)后面跟文件名來(lái)完成。

一、 使用> 完成保存

sort -h size.txt > size_sorted.txt

二、 使用-o 選項(xiàng)完成

[root@dongjing sort]# sort -h -o size_sorted.txt size.txt

注意: 運(yùn)行完命令不會(huì)在屏幕上輸出結(jié)果。而是直接保存到文件中了。

[root@dongjing sort]# ll | grep size
-rw-r--r-- 1 root root 23 Sep 16 10:34 size_sorted.txt
-rw-r--r-- 1 root root 23 Sep 16 10:23 size.txt

3.6 數(shù)字排序

假設(shè)我們有一個(gè)名為number的文件,內(nèi)容如下:

[root@dongjing sort]# cat number.txt
22
11
111
09
80

通過(guò)3.1我們已經(jīng)知道sort默認(rèn)是按照字典序排序,那么這里先試用sort排序看一下結(jié)果:

[root@dongjing sort]# sort number.txt
09
11
111
22
80

沒(méi)有達(dá)到我們預(yù)期的效果,我們想要的是按照數(shù)字大小進(jìn)行排序。這里可以使用-n 或者 -g 都可以。

[root@dongjing sort]# sort -n number.txt
09
11
22
80
111
[root@dongjing sort]#
[root@dongjing sort]# sort -g number.txt
09
11
22
80
111

3.7 檢查是否有序

判斷是否有序可以使用-c 選項(xiàng)實(shí)現(xiàn)

[root@dongjing sort]# sort -c number.txt
sort: number.txt:2: disorder: 11 # 這里說(shuō)明第一行的11不是有序的

先排序在檢查以后,發(fā)現(xiàn)沒(méi)有給出提示,表示已經(jīng)有序。

[root@dongjing sort]# sort number.txt | sort -c
[root@dongjing sort]#

3.8 按照指定列(字段)排序

-k 按照指定的列排序,默認(rèn)情況下每行按照空白符(空格、制表符等)來(lái)分隔列,列的下標(biāo)從1開(kāi)始

假如我們有一個(gè)score.txt的文件內(nèi)容如下(每行字段之間使用空格分隔), 每隔字段分別代表: 名稱(chēng) 科目 成績(jī)

[root@dongjing sort]# cat score.txt
Tom Scala 30
Tom Scala 30
Tom JAVA 30
aJack Python 95
bJack Python 95
Jack Spring 95
Mike Java 95
Linda linux 85
Linda php 66
Linda Linux 85
XY PHP 100
XY Java 55
Mike Scala 9
SS Shell 99

需求:現(xiàn)在我們需要按照成績(jī)由高分到低分排序(結(jié)果中不能出現(xiàn)重復(fù)行) -- 本題目不關(guān)心科目。

[root@dongjing sort]# sort -u score.txt | sort -k3,3nr
XY PHP 100
SS Shell 99
aJack Python 95
bJack Python 95
Jack Spring 95
Mike Java 95
Linda Linux 85
Linda PHP 66
XY Java 55
Tom Java 30
Tom Scala 30
Mike Scala 9

注意: 我們?nèi)绻恍枰凑盏谌信判蚪ㄗh寫(xiě)成 -k3,3,而不要寫(xiě)成 -k3 。因?yàn)?k3,3表示從第三列開(kāi)始到第三列 結(jié)束,所以只包括第三列排序。 而-k3表示從第三列開(kāi)始一直到最后一列排序。 當(dāng)然在本案例中寫(xiě)-k3,3 和 -k3結(jié)果都是一樣的。

3.9 指定分隔符排序

默認(rèn)情況下的分隔符為空白符(空格、制表符等),使用-t 可以自定義指定分隔符。

假如我們有一個(gè)score.txt的文件內(nèi)容如下(每行字段之間使用逗號(hào)分隔), 每隔字段分別代表: 名稱(chēng) 科目 成績(jī)

[root@dongjing sort]# cat score.txt
Tom,Scala,30
Tom,Scala,30
Tom,Java,30
aJack,Python,95
bJack,Python,95
Jack,Spring,95
Mike,Java,95
Linda,Linux,85
Linda,PHP,66
Linda,Linux,85
XY,PHP,100
XY,Java,55
Mike,Scala,9
SS,Shell,99

需求:將每科成績(jī)按照從高分到低分排序,如果分?jǐn)?shù)、科目都相同的話(huà),按照名字降序排列。(最后結(jié)果不能包含重復(fù)行)

[root@dongjing sort]# sort -u score.txt | sort -t "," -k2,2 -k3,3nr -k1,1r
Mike,Java,95
XY,Java,55
Tom,Java,30
Linda,Linux,85
XY,PHP,100
Linda,PHP,66
bJack,Python,95
aJack,Python,95
Tom,Scala,30
Mike,Scala,9
SS,Shell,99
Jack,Spring,95

3.10 忽略頭空格、忽略大小寫(xiě)排序

-b : 忽略頭部空格 (默認(rèn))

-f : 將所有小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母比較

假如有一個(gè)test.txt的文件,內(nèi)容如下:

[root@dongjing sort]# cat test.txt
computer
mouse
LAPTOP
 data
RedHat
 laptop
debian
laptop

需求1:忽略開(kāi)頭空白排序

[root@dongjing sort]# sort -b test.txt
computer
 data
debian
laptop
 laptop
LAPTOP
mouse
RedHat
[root@dongjing sort]# sort test.txt
computer
 data
debian
laptop
 laptop
LAPTOP
mouse
RedHat

可以觀察到不加-b 和加上結(jié)果是一樣的。

需求2: 忽略大小寫(xiě)排序

[root@dongjing sort]# sort -f test.txt
 laptop
 data
computer
debian
LAPTOP
laptop
mouse
RedHat

可以觀察到:①開(kāi)頭帶有空白的排序到最前面了,這是因?yàn)?-f 會(huì)將每行所有的字符轉(zhuǎn)換為大寫(xiě),而空白的大寫(xiě)還是其本身,所以在排序的時(shí)候就排到前面了 ② 觀察LAPTOP和laptop的位置可以看到我們忽略大小寫(xiě)已經(jīng)有成效。

注意: 使用-f 會(huì)打破默認(rèn)忽略頭空白排序的效果。

分享到:
標(biāo)簽:命令 Linux sort
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定