1 cut 数据剪切:
命令选项:
1)-b:以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
2)-c :以字符为单位进行分割。(-c 参数指定切割字符数从起始数到截止数)
3)-d :自定义分隔符,默认为制表符。
4)-f :与-d 一起使用,指定显示哪个区域。
注意:1个字节等于8个bit位,每个bit位有0 1两种状态,也就是说一个字节可以表示256个状态,计算机里用字节来作为最基本的存储单位。
字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。
举例:
192.168.11.16
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1|cut -c 1-3
192
2 sort 排序命令:
sort 命令用来排序,通常结合文本工具使用。
命令选项:
1)-f :忽略大小的差异,例如A与a视为编码相同。
2)-b :忽略最前面的空格符部分。
3)-M:以月份的名字来排序,例如 JAN EDC 等等的排序方法。
4)-n:使用【纯数字】进行排序(默认是以文字型态来排序的)。
192.168.11.42
192.168.11.16
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort -n
192.168.11.1
192.168.11.1
5)-r:反向排序。
192.168.11.42
192.168.11.16
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort -r
192.168.22.4
192.168.22.4
6)-u:就是uniq 去重,相同的数据中,仅出现一行代表。
192.168.11.1
192.168.11.1
[root@wangweicentos cut]# ^C
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort -u
192.168.11.1
192.168.11.100
7)-t:分隔符,默认是用[tab]键来分隔。
8)-k:以哪个区间(field)来进行排序的意思。
192.168.18.181
192.168.11.42
192.168.11.16
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort -k3
192.168.11.1
192.168.11.1
即以 . 为分隔后的区间进行排序
9)-o:将结果写到文件而非标准输出
3 uniq 去除重复行命令:
uniq命令可以去除排序过后的文件中的重复行,因此 uniq 经常和 sort 合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。
注意:前提条件是必须是先排序过的文本
命令选项:
1)-c :在每行前加上表示相应行目出现次数的前缀编号
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort |uniq -c
3 192.168.11.1
1 192.168.11.100
1 192.168.11.121
1 192.168.11.15
2 192.168.11.16
2)-d:只输出重复的行
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort |uniq -d
192.168.11.1
192.168.11.16
192.168.11.42
3)-D:显示所有重复的行
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort |uniq -D
192.168.11.1
192.168.11.1
192.168.11.1
192.168.11.16
192.168.11.16
4)-u:只显示唯一的行
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort |uniq -u
192.168.11.100
192.168.11.121
192.168.11.15
4 wc 统计命令
命令选项:
1)-c:统计字节数
2)-l:统计行数
[root@wangweicentos cut]# cat access.log |cut -d ' ' -f1 |sort |uniq -u|wc -l
11
3)-m:统计字符数
4)-w:统计字数
5)-L:打印最长行的长度