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

首頁 > 系統 > Linux > 正文

Linux系統sort排序命令怎么使用

2020-10-14 22:18:40
字體:
來源:轉載
供稿:網友

sort命令的功能是對文件中的各行進行排序。sort命令有許多非常實用的選項,這些選項最初是用來對數據庫格式的文件內容進行各種排序操作的。那么linux系統sort排序命令怎么使用呢?小編為大家分享了Linux系統sort排序命令的使用方法,下面大家跟著小編一起來了解一下吧。

Linux系統sort排序命令的使用方法

1 sort的工作原理

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

[rocrocket@rocrocket programming]$ cat seq.txt

banana

APPle

pear

orange

[rocrocket@rocrocket programming]$ sort seq.txt

apple

banana

orange

pear

2 sort的-u選項

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

[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由于重復被-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

4 sort的-o選項

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

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

[rocrocket@rocrocket programming]$ sort -r number.txt > number.txt

[rocrocket@rocrocket programming]$ cat number.txt

[rocrocket@rocrocket programming]$

看,竟然將number清空了。

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

[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

5 sort的-n選項

你有沒有遇到過10比2小的情況。我反正遇到過。出現這種情況是由于排序程序將這些數字按字符來排序了,排序程序會先比較1和2,顯然1小,所以就將10放在2前面嘍。這也是sort的一貫作風。

我們如果想改變這種現狀,就要使用-n選項,來告訴sort,“要以數值來排序”!

[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

6 sort的-t選項和-k選項

如果有一個文件的內容是這樣:

[rocrocket@rocrocket programming]$ cat facebook.txt

banana:30:5.5

apple:10:2.5

pear:90:2.3

orange:20:3.4

這個文件有三列,列與列之間用冒號隔開了,第一列表示水果類型,第二列表示水果數量,第三列表示水果價格。

那么我想以水果數量來排序,也就是以第二列來排序,如何利用sort實現?

幸好,sort提供了-t選項,后面可以設定間隔符。(是不是想起了cut和paste的-d選項,共鳴~~)

指定了間隔符之后,就可以用-k來指定列數了。

[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

我們使用冒號作為間隔符,并針對第二列來進行數值升序排序,結果很令人滿意。
(責任編輯:VEVB)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宽城| 吴忠市| 宜章县| 美姑县| 深州市| 麻城市| 正定县| 淄博市| 灵台县| 航空| 青州市| 石门县| 兴山县| 临邑县| 宜黄县| 全椒县| 杨浦区| 塘沽区| 云安县| 高邮市| 方正县| 织金县| 武强县| 鞍山市| 南木林县| 石首市| 洪洞县| 达拉特旗| 山丹县| 萨嘎县| 盐津县| 安仁县| 东台市| 永清县| 贵定县| 公主岭市| 南城县| 澄江县| 昂仁县| 尼木县| 共和县|