工作原理:
Sort將文件的每一行作為一個(gè)單位,相互比較,比較原則是從首字符向后,依次按ASCII碼值進(jìn)行比較linux命令大全,最后將他們按升序輸出。
第一部分:
1. sort:(不帶參數(shù))
[rocrocket@rocrocket ~]$ cat seq.txt banana apple pear orange [rocrocket@rocrocket ~]$ sort seq.txt apple banana orange pear
2. sort的-u選項(xiàng)
它的作用很簡(jiǎn)單,就是在輸出行中去除重復(fù)行。
[rocrocket@rocrocket ~]$ cat seq.txt banana apple pear orange pear [rocrocket@rocrocket ~]$ sort seq.txt apple banana orange pear pear [rocrocket@rocrocket ~]$ sort -u seq.txt apple banana orange pear
// pear由于重復(fù)被-u選項(xiàng)無情的刪除了
3. sort的-r選項(xiàng)
sort默認(rèn)的排序方式是升序,如果想改成降序,就加個(gè)-r就搞定了。
[rocrocket@rocrocket ~]$ cat number.txt 1 3 5 2 4 [rocrocket@rocrocket ~]$ sort number.txt 1 2 3 4 5 [rocrocket@rocrocket ~]$ sort -r number.txt 5 4 3 2 1
4. sort的-o選項(xiàng)
由于sort默認(rèn)是把結(jié)果輸出到標(biāo)準(zhǔn)輸出,所以需要用重定向才能將結(jié)果寫入文件,形如sort filename > newfile。
但是,如果你想把排序結(jié)果輸出到原文件中,用重定向可就不行了。
[rocrocket@rocrocket ~]$ sort -r number.txt > number.txt [rocrocket@rocrocket ~]$ cat number.txt [rocrocket@rocrocket ~]$ // 看,竟然將number清空了
就在這個(gè)時(shí)候,-o選項(xiàng)出現(xiàn)了,它成功的解決了這個(gè)問題,讓你放心的將結(jié)果寫入原文件。這或許也是-o比重定向的唯一優(yōu)勢(shì)所在。
[rocrocket@rocrocket ~]$ cat number.txt 1 3 5 2 4 [rocrocket@rocrocket ~]$ sort -r number.txt -o number.txt [rocrocket@rocrocket ~]$ cat number.txt 5 4 3 2 1
5. sort的-n選項(xiàng)
這些字符都是在正則表達(dá)式中被“征用”了,稱之為特殊字符,引用的時(shí)候,必須前面加 "\" 進(jìn)行區(qū)分,比如你要用到 "$" 字符的時(shí)候,必須使用 "\$",這樣程序才不會(huì)以為你是在匹配行尾。巨力董事會(huì)的批準(zhǔn)曾是一道難關(guān),因楊子決意進(jìn)入影視界顯然與一貫低調(diào)的家族作風(fēng)不符。沒錯(cuò),就是精衛(wèi),精衛(wèi)從出現(xiàn)到現(xiàn)在一直沒有大紅大紫過,它作為除了劍精靈外唯一可以打亂戰(zhàn)場(chǎng)敏排序的召喚獸曾經(jīng)有無數(shù)戰(zhàn)術(shù)大師對(duì)他yy過,但是顯然在實(shí)戰(zhàn)效果中比較差強(qiáng)人意。
我們?nèi)绻敫淖冞@種現(xiàn)狀,就要使用-n選項(xiàng),來告訴sort,“要以數(shù)值來排序”!
[rocrocket@rocrocket ~]$ cat number.txt 1 10 19 11 2 5 [rocrocket@rocrocket ~]$ sort number.txt 1 10 11 19 2 5 [rocrocket@rocrocket ~]$ sort -n number.txt 1 2 5 10 11 19