sort命令

sort命令bash

做用

主要用於對文本內容進行排序ide

語法:

sort [-bcfMnrtku][源文件][-o 輸出文件] spa

參數:

  -b   忽略每行前面開始出的空格字符。排序

  -c   檢查文件是否已經按照順序排序。it

  -f   排序時,忽略大小寫字母。class

  -M   將前面3個字母依照月份的縮寫進行排序。test

  -n   依照數值的大小排序。語法

  -o<輸出文件>  將排序後的結果存入指定的文件。sort

  -r   以相反的順序來排序。重定向

  -t<分隔字符>  指定排序時所用的欄位分隔字符。

  -k  選擇以哪一個區間進行排序

  -u 刪除重複行

示例

  • sort處理文件的時候是以行爲單位,相互比較,原則是從首字符依次向後,依次按ASCII碼值進行比較,最後將他們按升序輸出

[jeck@localhost~]$ cat test
dddddddddddddd
ccccccccccc
eeeeeeeeee
aaaaaaaa
bbbbbbb
abcd
bcd
3
2
5
1
4
[jeck@localhost~]$ sort test
1
2
3
4
5
aaaaaaaa
abcd
bbbbbbb
bcd
ccccccccccc
dddddddddddddd
eeeeeeeeee

 

  • 刪除重複行 -u

[jeck@localhost~]$ cat test
bbbbb
aaaaa
cccccc
bbbbb
bbbbbaa
aaaaa
[jeck@localhost~]$ sort -u test
aaaaa
bbbbb
bbbbbaa
cccccc
  • 降序排列 -r

[jeck@localhost~]$ sort -ur test
cccccc
bbbbbaa
bbbbb
aaaaa
  • 把輸出結果存到另外一個文件中

通常狀況下用'>'便可重定向到另外一個文件,可是須要直接修改本文件時,用'>'就會把原文件清空,因此須要用到-o參數
 
[jeck@localhost~]$ cat test
bbbbb
aaaaa
cccccc
bbbbb
bbbbbaa
aaaaa
[jeck@localhost~]$ sort -ur test > 1.txt
[jeck@localhost~]$ cat 1.txt
cccccc
bbbbbaa
bbbbb
aaaaa
[jeck@localhost~]$ cp test test1
[jeck@localhost~]$ sort -ur test > test      ---->定向到原文件
[jeck@localhost~]$ cat test
空
[jeck@localhost~]$ sort -ur test1 -o test1
[jeck@localhost~]$ cat test1
cccccc
bbbbbaa
bbbbb
aaaaa

 

  • 使用數值來排序 -n

默認sort會以行首第一個字符做比較排序,可是,當出現多位數字做比較時候,就得加-n,不然比較不成功
 
[jeck@localhost~]$ sort test
1
10
12
14
2
3
4
5
會發現排序不對,如今加上-n
 
[jeck@localhost~]$ sort -n test
1
2
3
4
5
10
12
14
  • 指定間隔符(-t)和列數(-k)進行排序

[jeck@localhost~]$ cat test
一月192.168.254.1 109
二月192.168.254.2 201
三月192.168.254.4 344
如今要按訪問次數從大到小排序,以空格爲分隔符,指定比較第三列
[jeck@localhost~]$ sort -n -r -k 3 -t ' ' test
三月192.168.254.4 344
二月192.168.254.2 201
一月192.168.254.1 109
相關文章
相關標籤/搜索