程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> linux之sort敕令的用法

linux之sort敕令的用法

編輯:關於C++

linux之sort敕令的用法。本站提示廣大學習愛好者:(linux之sort敕令的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是linux之sort敕令的用法正文


sort敕令是幫我們根據分歧的數據類型停止排序,其語法及經常使用參數格局:
sort [-bcfMnrtk][源文件][-o 輸入文件]
彌補解釋:sort可針對文本文件的內容,以行動單元來排序。

參  數:
  -b   疏忽每行後面開端出的空格字符。
  -c   檢討文件能否曾經依照次序排序。
  -f   排序時,疏忽年夜小寫字母。
  -M   將後面3個字母按照月份的縮寫停止排序。
  -n   按照數值的年夜小排序。
  -o<輸入文件>   將排序後的成果存入指定的文件。
  -r   以相反的次序來排序。
  -t<分隔字符>   指定排序時所用的欄位分隔字符。
  -k  選擇以哪一個區間停止排序。
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

上面經由過程幾個例子來說述Sort的應用。

(1)sort將文件的每行作為一個單元,互相比擬,比擬准繩是從首字符向後,順次按ASCII碼值停止比擬,最初將他們按升序輸入。

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

用戶可以保留排序後的文件內容,或把排序後的文件內容輸入至打印機。下例頂用戶把排序後的文件內容保留到名為result的文件中。
$ Sort seq.txt > result

(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
(5)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

(6) 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

(7) 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選項,前面可以設定距離符。指定了距離符以後,便可以用-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

(8) 其他的sort經常使用選項

-f會將小寫字母都轉換為年夜寫字母來停止比擬,亦即疏忽年夜小寫

-c會檢討文件能否已排好序,假如亂序,則輸入第一個亂序的行的相干信息,最初前往1

-C會檢討文件能否已排好序,假如亂序,不輸入內容,僅前往1

-M會以月份來排序,好比JAN小於FEB等等

-b會疏忽每行後面的一切空白部門,從第一個可見字符開端比擬。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved