分类: 系统运维
2015-07-23 11:45:16
Linux的sort、uniq、wc命令常用参数举例解析
一.文本排序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