Linux sort命令使用解析
語法
選項
參數
文件:指定待排序的文件列表。
實例
sort將文件/文本的每一行作為一個單位,相互比較,比較原則是從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。
忽略相同行使用-u選項或者uniq:
sort的-n、-r、-k、-t選項的使用:
-k選項的具體語法格式:
-k選項的語法格式:
這個語法格式可以被其中的逗號,
分為兩大部分,Start部分和End部分。Start部分也由三部分組成,其中的Modifier部分就是我們之前說過的類似n和r的選項部分。我們重點說說Start
部分的FStart
和C.Start
。C.Start
也是可以省略的,省略的話就表示從本域的開頭部分開始。FStart.CStart
,其中FStart
就是表示使用的域,而CStart
則表示在FStart
域中從第幾個字符開始算“排序首字符”。同理,在End部分中,你可以設定FEnd.CEnd
,如果你省略.CEnd
,則表示結尾到“域尾”,即本域的最後一個字符。或者,如果你將CEnd設定為0(零),也是表示結尾到“域尾”。
從公司英文名稱的第二個字母開始進行排序:
使用了-k 1.2
,表示對第一個域的第二個字符開始到本域的最後一個字符為止的字符串進行排序。你會發現baidu因為第二個字母是a而名列榜首。sohu和 google第二個字符都是o,但sohu的h在google的o前面,所以兩者分別排在第二和第三。guge只能屈居第四了。
只針對公司英文名稱的第二個字母進行排序,如果相同的按照員工工資進行降序排序:
由於只對第二個字母進行排序,所以我們使用了-k 1.2,1.2
的表示方式,表示我們“只”對第二個字母進行排序。(如果你問“我使用-k 1.2
怎麽不行?”,當然不行,因為你省略了End部分,這就意味著你將對從第二個字母起到本域最後一個字符為止的字符串進行排序)。對於員工工資進行排 序,我們也使用了-k 3,3
,這是最準確的表述,表示我們“只”對本域進行排序,因為如果你省略了後面的3,就變成了我們“對第3個域開始到最後一個域位置的內容進行排序” 了。
Linux sort命令使用解析