sort,uniq,wc,tr
sort (选项)(参数) sort是用来排序数据的。
以下面这个文本为例
[root@bogon ~]# cat a 123 4567 88 abc aaa AAA jk 777 777
sort默认以ASCII码表为标准,按字符从左至右的比较,最后从小到大输出
[root@bogon ~]# cat a 123 4567 88 abc aaa AAA jk 777 777
-n:按照数值的大小排序
[root@bogon ~]# sort -n a aaa AAA abc jk 88 123 777 777 4567
-r:逆序输出
[root@bogon ~]# sort -nr a 4567 777 777 123 88 jk abc AAA aaa
-t:指定分隔符,和-k一起使用
-k:选取哪个字段
实例以/etc/passwd为例,以“:”为分隔符,选取第5字段排序 [root@bogon ~]# head -5 /etc/passwd | sort -t: -k5 adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin root:x:0:0:root:/root:/bin/bash
-u:排序后相同的内容只显示一次,行必须紧邻才能算是相同
[root@bogon ~]# sort -u a 123 4567 777 88 aaa AAA abc jk
-f:排序时忽略大小写
[root@bogon ~]# sort -fu a 123 4567 777 88 aaa abc jk
------------------------------------------------------------------------------------------------------------
uniq (选项)(参数) 相当于 sort -u,同样,相同行必须紧邻才算相同。
-c:显示文件中相同的行重复的次数
[root@bogon ~]# uniq -c a 1 123 1 4567 1 88 1 abc 1 aaa 1 AAA 1 jk 2 777 1
-d只显示文件中相同的行:
[root@bogon ~]# uniq -d a 777
------------------------------------------------------------------------------------------------------------
wc (选项)(参数) 文本统计命令,可以统计文本的行数,单词数,字符数
默认
[root@bogon ~]# wc a 10 9 39 a 10行9个单词39个字符,空格也算是字符
-l:只显示行数
[root@bogon ~]# wc -l a 10 a
-w:只显示单词数
[root@bogon ~]# wc -w a 9 a
-c或-m:只显示字符数
[root@bogon ~]# wc -c a 39 a [root@bogon ~]# wc -m a 39 a
-L:显示最长的一行中有多少个字符
[root@bogon ~]# wc -L a 5 a
------------------------------------------------------------------------------------------------------------
tr (选项)(参数): tr可以做字符串转换一类的事情,但是tr需要输入重定向或管道流才能使用
默认情况下可以做替换或者大小写转换等
[root@bogon ~]# cat a | tr 'a' 'A' 123 4567 88 Abc AAA AAA jk 777 777
-c:将没有比配到的字符都变成另一个字符
[root@bogon ~]# cat a | tr -c '77' 'x' xxxxxxx7xxxxxxxxxxxxxxxxxxxxxx777x777xx[root@bogon ~]#
-d:将匹配到的字符都删除
[root@bogon ~]# cat a | tr -d '77' 123 456 88 abc aaa AAA jk
-s:将匹配到的字符,重复的都显示一次
[root@bogon ~]# cat a | tr -s '77' 123 4567 88 abc aaa AAA jk 7 7
还可以使用的一些字符集
[:alnum:]:字母和数字 [:alpha:]:字母 [:cntrl:]:控制CTRL字符 [:digit:]:数字 [:graph:]:图形字符 [:lower:]:小写字母 [:print:]:可打印字符 [:punct:]:标点符号 [:space:]:空白字符 [:upper:]:大写字母 [:xdigit:]:十六进制字符