国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

linux之sort命令的用法

2020-02-24 14:27:50
字體:
供稿:網(wǎng)友

Linux下的sort命令默認為對文件中的每個操作單元進行排序和輸出,具體來說,它從每行的第一個字符開始,依次比較ASCII代碼,最后按升序輸出結(jié)果,今天武林技術(shù)頻道小編為你介紹linux之sort命令的用法,希望能幫到您。

sort命令是幫我們依據(jù)不同的數(shù)據(jù)類型進行排序,其語法及常用參數(shù)格式:
sort [-bcfMnrtk][源文件][-o 輸出文件]
補充說明:sort可針對文本文件的內(nèi)容,以行為單位來排序。

參  數(shù):
? -b?? 忽略每行前面開始出的空格字符。
? -c?? 檢查文件是否已經(jīng)按照順序排序。
? -f?? 排序時,忽略大小寫字母。
? -M?? 將前面3個字母依照月份的縮寫進行排序。
? -n?? 依照數(shù)值的大小排序。
? -o<輸出文件>?? 將排序后的結(jié)果存入指定的文件。
? -r?? 以相反的順序來排序。
? -t<分隔字符>?? 指定排序時所用的欄位分隔字符。
? -k? 選擇以哪個區(qū)間進行排序。
? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下面通過幾個例子來講述Sort的使用。

(1)sort將文件的每一行作為一個單位,相互比較,比較原則是從首字符向后,依次按ASCII碼值進行比較,最后將他們按升序輸出。

[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear

用戶可以保存排序后的文件內(nèi)容,或把排序后的文件內(nèi)容輸出至打印機。下例中用戶把排序后的文件內(nèi)容保存到名為result的文件中。
$ Sort seq.txt > result

(2)sort的-u選項

它的作用很簡單,就是在輸出行中去除重復(fù)行。

[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
pear
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear
pear
[rocrocket@rocrocket programming]$ sort -u seq.txt
apple
banana
orange
pear

pear由于重復(fù)被-u選項無情的刪除了。

(3)sort的-r選項

sort默認的排序方式是升序,如果想改成降序,就加個-r就搞定了。

[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort number.txt
1
2
3
4
5
[rocrocket@rocrocket programming]$ sort -r number.txt
5
4
3
2
1
(5)sort的-o選項

由于sort默認是把結(jié)果輸出到標準輸出,所以需要用重定向才能將結(jié)果寫入文件,形如sort filename > newfile。

但是,如果你想把排序結(jié)果輸出到原文件中,用重定向可就不行了。

[rocrocket@rocrocket programming]$ sort -r number.txt > number.txt
[rocrocket@rocrocket programming]$ cat number.txt
[rocrocket@rocrocket programming]$
看,竟然將number清空了。

就在這個時候,-o選項出現(xiàn)了,它成功的解決了這個問題,讓你放心的將結(jié)果寫入原文件。這或許也是-o比重定向的唯一優(yōu)勢所在。

[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt
[rocrocket@rocrocket programming]$ cat number.txt
5
4
3
2
1

(6) sort的-n選項

你有沒有遇到過10比2小的情況。我反正遇到過。出現(xiàn)這種情況是由于排序程序?qū)⑦@些數(shù)字按字符來排序了,排序程序會先比較1和2,顯然1小,所以就將10放在2前面嘍。這也是sort的一貫作風(fēng)。

我們?nèi)绻敫淖冞@種現(xiàn)狀,就要使用-n選項,來告訴sort,“要以數(shù)值來排序”!

[rocrocket@rocrocket programming]$ cat number.txt
1
10
19
11
2
5
[rocrocket@rocrocket programming]$ sort number.txt
1
10
11
19
2
5
[rocrocket@rocrocket programming]$ sort -n number.txt
1
2
5
10
11
19

(7) sort的-t選項和-k選項

如果有一個文件的內(nèi)容是這樣:

[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4

這個文件有三列,列與列之間用冒號隔開了,第一列表示水果類型,第二列表示水果數(shù)量,第三列表示水果價格。那么我想以水果數(shù)量來排序,也就是以第二列來排序,如何利用sort實現(xiàn)?幸好,sort提供了-t選項,后面可以設(shè)定間隔符。指定了間隔符之后,就可以用-k來指定列數(shù)了。

[rocrocket@rocrocket programming]$ sort -n -k 2 -t ‘:' facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3

(8) 其他的sort常用選項

-f會將小寫字母都轉(zhuǎn)換為大寫字母來進行比較,亦即忽略大小寫

-c會檢查文件是否已排好序,如果亂序,則輸出第一個亂序的行的相關(guān)信息,最后返回1

-C會檢查文件是否已排好序,如果亂序,不輸出內(nèi)容,僅返回1

-M會以月份來排序,比如JAN小于FEB等等

-b會忽略每一行前面的所有空白部分,從第一個可見字符開始比較。

以上就是關(guān)于linux之sort命令的用法,相信大家在讀完后對這方面知識有了更深的了解,如果你還想了解更多的相關(guān)信息,建議繼續(xù)關(guān)注武林技術(shù)頻道吧!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五台县| 迁安市| 阜新市| 东阳市| 吉水县| 聊城市| 松江区| 江油市| 柳江县| 灵寿县| 雅安市| 毕节市| SHOW| 达日县| 应用必备| 白银市| 扎赉特旗| 廊坊市| 天峨县| 衢州市| 于田县| 龙山县| 密山市| 洞口县| 尼勒克县| 许昌县| 林芝县| 两当县| 黑龙江省| 友谊县| 临澧县| 河北省| 卢龙县| 宜良县| 万源市| 宁德市| 漳州市| 镇原县| 东城区| 温泉县| 芒康县|