sort和uniq命令使用方法

sort命令

--功能說明:以行爲單位對文件進行排序。

--命令格式:sort  [參數] [<文件>...]

-b :忽略前導的空格。

-d :只考慮空格、字母和數字。

-f :忽略字母大小寫。

-i :只考慮刻打印的字符。

-M :排序月份,(未知詞)“JAN< ... <DEC”。

-n :根據字符串的數值進行排序。

-r :逆向排序。

-u :對相同的行過濾。

+n n爲數字,對指定的行進行排序,+0表示第一列,以空格或製表符作爲列的間隔符。

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

1

[root@lesliescripts]# cat sort.txt

aaa:10:1.1

ccc:30:3.3

ddd:40:4.4

fff:60:6.6

bbb:20:2.2

eee:50:5.5

ccc:30:3.3

ccc:30:3.3

bbb:20:2.2

[root@lesliescripts]# sort sort.txt

aaa:10:1.1

bbb:20:2.2

bbb:20:2.2

ccc:30:3.3

ccc:30:3.3

ccc:30:3.3

ddd:40:4.4

eee:50:5.5

fff:60:6.6

2.忽略相同行使用-u選項或者uniq

[root@lesliescripts]# cat sort.txt

aaa:10:1.1

ccc:30:3.3

ddd:40:4.4

fff:60:6.6

bbb:20:2.2

eee:50:5.5

ccc:30:3.3

ccc:30:3.3

bbb:20:2.2

[root@lesliescripts]# sort -u sort.txt

aaa:10:1.1

bbb:20:2.2

ccc:30:3.3

ddd:40:4.4

eee:50:5.5

fff:60:6.6

[root@lesliescripts]# uniq sort.txt

aaa:10:1.1

ccc:30:3.3

ddd:40:4.4

fff:60:6.6

bbb:20:2.2

eee:50:5.5

ccc:30:3.3

bbb:20:2.2

3. sort  -n是按照數字大小排序,-r是以相反順序,-k是指定的第幾個段排序,-t指定的分隔符爲冒號。

[root@lesliescripts]# sort -nk 2-t: sort.txt

aaa:10:1.1

bbb:20:2.2

bbb:20:2.2

ccc:30:3.3

ccc:30:3.3

ccc:30:3.3

ddd:40:4.4

eee:50:5.5

fff:60:6.6

[root@lesliescripts]# sort -nrk 3 -t: sort.txt  

fff:60:6.6

eee:50:5.5

ddd:40:4.4

ccc:30:3.3

ccc:30:3.3

ccc:30:3.3

bbb:20:2.2

bbb:20:2.2

aaa:10:1.1

4.uniq命令用於消除文件中的重複內容,sort -u 對內容排序並消除重複行。

[root@lesliescripts]# cat web.txt

https://hao.360.cn/?360safe

https://hao.360.cn/?360safe

http://www.sina.com.cn/

http://www.sina.com.cn/

http://www.elong.com/

http://www.sina.com.cn/

http://www.elong.com/

http://www.elong.com/

http://www.elong.com/

[root@lesliescripts]# uniq web.txt

https://hao.360.cn/?360safe

http://www.sina.com.cn/

http://www.elong.com/

http://www.sina.com.cn/

http://www.elong.com/

[root@lesliescripts]# sort web.txt |uniq

http://www.elong.com/

http://www.sina.com.cn/

https://hao.360.cn/?360safe

[root@lesliescripts]# sort -u web.txt     

http://www.elong.com/

http://www.sina.com.cn/

https://hao.360.cn/?360safe

5.uniq -u只顯示不重複的內容。

[root@lesliescripts]# cat web.txt

https://hao.360.cn/?360safe

https://hao.360.cn/?360safe

http://www.sina.com.cn/

http://www.sina.com.cn/

http://www.elong.com/

http://www.sina.com.cn/

http://www.elong.com/

http://www.elong.com/

http://www.elong.com/

[root@lesliescripts]# uniq -u web.txt

http://www.elong.com/

http://www.sina.com.cn/

[root@lesliescripts]# sort web.txt |uniq -u

6. uniq -c統計各行在文件中出現的次數。

[root@lesliescripts]# sort web.txt |uniq -c

      4 http://www.elong.com/

      3 http://www.sina.com.cn/

      2 https://hao.360.cn/?360safe

7. uniq -d在文件中找出重複的行。

[root@lesliescripts]# sort web.txt |uniq -d

http://www.elong.com/

http://www.sina.com.cn/

https://hao.360.cn/?360safe

8.按對應列排序:

  • 默認按整行排序

  • -t指定分隔符,-k1,分隔符之後的第一列排序。

  • -k 1 1 用逗號來分隔字段,表示第一個字段開始排序到第一個字段結束。

  • –k 1.1,3.3 用點分隔字符,表示第一個字段的第一個字符開始排序到第三個字段的第三個字符結束。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章