轉自:http://10495845.blog.51cto.com/10485845/1671771
linux
一.文本排序sort
1.sort排序是根據從輸入行抽取的一個或多個關鍵字進行比較來完成的。排序關鍵字定義了用來排序的最小的字符序列。缺省狀況下以整行爲關鍵字按」ASCII字符順序」進行排序。例:
1. [root@server74 sort]# cat sort_default ##示例文件
23
123
345
111
44
333
678
[root@server74 sort]# sort sort_default
111
123
23
333
345
44
678
Sort默認排序並不是按數值大小,而是按ASCII字符順序依次排序,若第一個字符相同,則比較第二個字符,直到出現不相同字符,用升序進行排列。
2.若按數值大小進行排序,則須要用到sort的參數:
-n:--numeric-sort數值順序
[root@server74 sort]# sort -n sort_default //若需逆序排序,加-r(reverse)參數
23
44
111
123
333
345
678
3.對某個文件的某個特定字段進行排序,以/etc/passwd文件爲例,以第三個字段爲關鍵字段,對數值進行升序排序:
-k: --key=POS1指定以哪一個字段爲關鍵字進行排序
-t: --field-separator=SEP指定分隔符
[root@server74 sort]# sort -t: -k3 -n /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
二.Uniq
1.uniq默認重複的行只顯示一次(重複行指的是相同且相鄰):
[root@server74 sort]# cat sort_default ##實例文件
23
123
345
111
44 相同且相鄰
44
333
678
44 與上相同但不相鄰
[root@server74 sort]# uniq sort_default
23
123
345
111
44
333
678
44
2. 顯示重複行行數 -c:count
只顯示非重複行 -u:unique
3. 只顯示重複行 -d:repeated
[root@server74 sort]# uniq -d sort_default
44
4. 只顯示重複行,而且記錄重複的行數 -c -d
[root@server74 sort]# uniq -c -d sort_default
2 44
三.文本統計wc
man下wc命令便可查到它的不少用法,通常經常使用的有一下幾個參數:
l -c, --bytes:print the byte counts統計字節數
l -m, --chars:print the character counts統計字符數
l -w, --words:print the word counts統計字數
l -l, --lines:print the newline counts統計行數
l -L, --max-line-length:print the length of the longest line統計最長行的長度
以test文本文件爲例:
[root@server74 sort]# cat test
hello world
welcome to China
23
123
345
111
linux is important
44
44
333
[root@server74 sort]# wc -c test
74 test
[root@server74 sort]# wc -m test
74 test
[root@server74 sort]# wc -w test
15 test
[root@server74 sort]# wc -l test
11 test
[root@server74 sort]# wc -L test
18 test
bash