网站建设排名优化技巧,建筑企业资质公司,wordpress如何修改主题名称,wordpress 积分动力★排序、去重、统计★
1#xff09;排序
sort -n按照数值排序 -r降序排列
2#xff09;去重
uniq 过滤相邻、重复的行 -c 对重复行计数
3#xff09;统计
wc 统计文件中的字节数、单词数、行数 -l 显示行数
今天通过使用grep、awk、cut指令和上面几个选项提取文本文件…★排序、去重、统计★
1排序
sort -n按照数值排序 -r降序排列
2去重
uniq 过滤相邻、重复的行 -c 对重复行计数
3统计
wc 统计文件中的字节数、单词数、行数 -l 显示行数
今天通过使用grep、awk、cut指令和上面几个选项提取文本文件的信息
方法1
[rootlocalhost nginx]# cat access.log | awk {print $1}| sort -rn | uniq -c | sort -rn | head
Cat 查看文本文件
| awk {print $1} 通过管道| 将cat信息传输给awk
{print $1}限制每一行的第一个字段
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行方法2
[rootlocalhost nginx]# awk {print $1} access.log | sort -rn | uniq -c | sort -rn | head awk {print $1} access.log 通过awk指令打印每一行的第一字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行方法3
[rootlocal-host nginx]# cut -d -f1 access.log | sort -rn | uniq -c | sort -rn | head
# cut -d -f1 access.log -d’ ’指定字符分隔符为单个空格
-f1 每行提取第一个字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行方法4
[rootlocalhost nginx]# grep -oP ^\S access.log | sort | uniq -c | sort -nr | head
grep -oP ^\S access.log
-P开启perl正则表达式
-o 只输出匹配的内容
^\S ^字符串定位行首 \S 匹配任何非空白字符 包括字母、数字、标点符号。 除了空格、制表符、换行符等空白字符之外的任何字符 一个量词 \S匹配一个或者多个非空白字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行方法5
[rootlocalhost nginx]# awk {ip[$1]} END {for (i in ip) print ip[i], i | sort -rn | head } access.log
awk {ip[$1]} awk 读取每一行
{ip[$1]} ip[] 关联数组名为ip
$1限定第一个字段检查第一字段 若已存在会自动加1 若不存在会自动创建初始化为1
print ip[i], i打印出每个IP地址及其出现次数。注意这里先打印次数再打印IP地址以匹配最终排序的需求代表每一行ip出现的次数
sort -rn | head先将awk传输的数据排序再将数据前10打印出来今天先分享到这里希望能够帮助到大家……