Shell之sort與uniq命令簡介

2022-08-24 03:12:12 字數 3335 閱讀 7249

一、sort命令使用

1. 指定按數字排序:

[root@topinsight sort]#cat file1 

paixu 4

hebing 1

weiyi 2

chongfu 3

[root@topinsight sort]#sort -n file1 

chongfu 3

hebing 1

paixu 4

weiyi 2

​2.逆序排序:

[root@topinsight sort]#sort -nr file1 

weiyi 2

paixu 4

hebing 1

chongfu 3

3.檢查是否已經排序:

[root@topinsight sort]#cat file2 56

78[root@topinsight sort]#sort -c file1

sort:file1:2:無序: hebing 1

4.檢查是否按照數字排序:

[root@topinsight sort]#sort -cn file2

5.合併兩個檔案,並對結果進行排序:

[root@topinsight sort]#sort  -m file1 file2 | sort56

78chongfu 3

hebing 1

paixu 4

weiyi 2

6.按照鍵或者列進行排序(預設列與列之間按照空格分開):

[root@topinsight sort]#cat file3 

paixu 4

hebing 1

weiyi 2

chongfu 356

787.指定第二列(-k選項),按數字逆序排序

[root@topinsight sort]#sort -nrk 2 file3

paixu 4

chongfu 3

weiyi 2

hebing 187

658.指定非空格作為分隔符(-t選項):

[root@topinsight sort]#cat file4

paixu,4

hebing,1

weiyi,2

chongfu,356

78[root@topinsight sort]#sort -t ',' -nrk 2 file4

paixu,4

chongfu,3

weiyi,2

hebing,187

659.指定先按第2列,再按第三列排序(復合排序):

[root@topinsight sort]#cat data.txt 

1 hellomy txt

1 hellomy ami

2 myname is

3 you are

4 nihao

5 amao

[root@topinsight sort]#sort -nk 2,3 data.txt 

1 hellomy ami

1 hellomy txt

2 myname is

3 you are

4 nihao

5 amao

10.忽略檔案中的空白符號(-b選項):

[root@topinsight sort]#cat data2.txt 

1 hellomy txt

2 myname is

4 nihao

5 amao

1 hellomy ami

3 you are

[root@topinsight sort]#sort -bnk 2,3 data2.txt 

1 hellomy ami

1 hellomy txt

2 myname is

3 you are

4 nihao

5 amao

11.使用sort的結果作為xargs的引數時候,注意與find命令一樣需要指定字串終止符(\0)

[root@topinsight sort]#sort -nrk 2 file3    -z | xargs   -0  echo 

paixu 4

hebing 1

weiyi 2

chongfu 356

78二、uniq命令的用法

uniq命令用於對排序過的檔案進行去重操作:

1.排序後去重

[root@topinsight sort]#cat data3.txt 

root

root

hxhx

root

foolson

manman

honghong

longlong

first

second

[root@topinsight sort]#sort data3.txt  | uniq 

first

foolson

honghong

hxlonglong

manroot

second

或者:[root@topinsight sort]#sort -u data3.txt 

first

foolson

honghong

hxlonglong

manroot

second

2.只顯示沒有重複的行:

[root@topinsight sort]#sort data3.txt | uniq -u 

first

foolson

honghong

longlong

second

3.找出重複的行:

[root@topinsight sort]#sort data3.txt  | uniq -d

hxman

root

三、使用例項

1.例項1:

列出乙個字串包含的每個字元的個數:

[root@topinsight sort]#echo aabbcccaaccddabd | sed 's/[^.]/&\n/g' | sed '/^$/d' | sort -f | uniq -c  

5 a1 b

2 b2 c

3 c3 d

2.例項2:

依據apache日誌,找出訪問ip,按照訪問日誌數排序:

shell中的uniq與sort命令

sort命令 sort命令通常用來排序,命令的一些常見用法 命令用法 說明sort n 純數字排序 sort r 倒敘sort u 去掉重複數字 sort o 輸出到指定檔案中 sort t 指定分隔符 sort k 指定要排序的列 sort rn 反向純數字排序 sort rn numbers o...

SHELL 文字處理(二) sort與uniq命令

sort n 純數字排序 r 倒序 u 去掉重複數字 o 輸出到指定檔案中 t 指定分隔符 k 指定要排序的列 root server sort westos 112 1232332 55167 root server sort n westos 12 3567 1232 51123 root se...

Shell基礎之 uniq命令

檢視sort和uniq去除重複行的區別 sort t k7 u etc passwd 去除passwd檔案中域7重複的行 cat etc passwd uniq 去除passwd檔案中域7重複的行 區別1 sort 可以對指定的域進行排序並且去除重複行 uniq 則不可以對某個相同的域進行去除,只能...