sort、uniq、awk

uniq -c
--conut,显示个数
sort -u
--unique 去重显示
sort -r
--reverse 倒序排列
#vim a.txt
www.kazihuo.com
www.kazihuo.com
post.kazihuo.com
www.kazihuo.com
mp3.kazihuo.com
www.kazihuo.com
www.kazihuo.com
post.kazihuo.com
#awk -F / ‘{print $3}‘ a.txt|sort|uniq -c|sort -r a.txt
5 www.kazihuo.com
2 post.kazihuo.com
1 mp3.kazihuo.com
#awk -F / ‘{S[$3]++}END{for (i in S) print i,S[i]‘} a.txt
post.kazihuo.com 2
mp3.kazihuo.com 1
www.kazihuo.com 5

1)统计/etc/passwd 中各种类型shell的数量:# awk -F: ‘{shells[$NF]++} END{ for(i in shells){print i,shells[i]} }‘ /etc/passwd

2)网站访问状态统计 <当前状态 netstat>:# netstat -ant |grep :80 |awk ‘{access_stat[$NF]++} END{for(i in access_stat ){print i,access_stat[i]}}‘

or    # netstat -ant |grep :80 |awk ‘{access_stat[$NF]++} END{for(i in access_stat ){print i,access_stat[i]}}‘ |sort -k2 -n |head

3)统计当前访问的每个IP的数量 <当前状态 netstat>:#netstat -ant |grep :80 |awk -F: ‘{ip_count[$8]++} END{for(i in ip_count){print i,ip_count[i]} }‘ |sort

4)统计Apache/Nginx日志中某一天的PV量  <统计日志>:#grep ‘07/Aug/2012‘ access.log |wc -l

5)统计Apache/Nginx日志中某一天不同IP的访问量 <统计日志>:#grep ‘07/Aug/2012‘ access.log |awk ‘{ips[$1]++} END{for(i in ips){print i,ips[i]} }‘ |sort -k2 -rn |head

or      # grep ‘07/Aug/2012‘ access.log |awk ‘{ips[$1]++} END{for(i in ips){print i,ips[i]} }‘ |awk ‘$2>100‘ |sort -k2 -rn

6)统计用户名为4个字符的用户:# awk -F: ‘$1~/^....$/{count++; print $1} END{print "count is: " count}‘ /etc/passwd

or      # awk -F: ‘length($1)==4{count++; print $1} END{print "count is: "count}‘ /etc/passwd

时间: 2024-11-05 09:29:21

sort、uniq、awk的相关文章

awk、uniq、sort三个命令的基本用法

今天对awk.uniq.sort三个命令做了基础功能的学习,这里自己记录一下: 1.awk(数据处理工具,将一行分割成多个"字段"来处理) awk -F '文本切割符''{处理过程}' 文件名称 如:cat /ect/passwd | awk -F ':' '{print $1}'   #以:分割,打印第一列的数据:如果为$0表示整个文件内容 cat /etc/passwd | awk -F ''BEGIN {print "begin,goto"} {print $

shell特殊符号,cut、sort、wc、uniq、tee、tr、split命令

*代表0个或多个任意字符 [[email protected] ~]# ls *txt 11.txt  1.txt  22.txt  2.txt  aa.txt  a.txt ?只代表一个任意字符 不管是数字还是字母,只要是一个字符的都能匹配出来 [[email protected] ~]# ls ?.txt 1.txt  2.txt  a.txt  b.txt [[email protected] ~]# ls ?txt ls: 无法访问?txt: 没有那个文件或目录 注释符号#,这个符号后面

文本处理cut、sort、uniq、paste正则表达式

文本处理cut.sort.uniq.paste正则表达式 1 cut 按列抽取文本 cut -d DELIMITER -f FILEDS .example,cut -d: -f1,用-d:冒号位分割符,用f1取第一列. [[email protected] ~]#cut /etc/passwd -d: -f 7 /bin/bash /sbin/nologin /sbin/nologin /sbin/nologin /sbin/nologin 1.2 paste -d : f1 f2 两个文件行号

Linux进阶命令-sort、uniq、 cut、sed、grep、find、awk

命令难度总体来说有简入难,参数都是工作中常常用到的.如果涉及到一些生僻的参数还请百度或man一下. sort(参考学习网站:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html) 功能:根据不同的数据类型进行排序 格式:sort [-cMnrtk][源文件][-o 输出文件] 说明: 如果有一个文件"1.txt",假如有一列数字,分别为1,2,2,3,5,4 -n:   依照数值的大小排序 --> 数字

Linux学习(二十二)Shell基础(三)特殊符号、sort、wc、uniq、tee、tr、split

一.特殊符号 * :任意个任意字符 [[email protected] ~]# ls 1* 1bak.zip 1.tar 1.zip.bz2 1: 1.txt 2 [[email protected] ~]# ls 1*2 ?:一个任意字符 [[email protected] ~]# ls 2?tar 2.tar #:注释 [[email protected] ~]# #ls [[email protected] ~]# \:脱意 [[email protected] ~]# a=3 [[e

正则表达式 ------排序三工具(sort、uniq、wc)

一.sort 工具 (1)sort 是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序 (2)sort 命令格式:sort [选项] 参数 (3)常用的选项: -f:忽略大小写: -b:忽略每行前面的空格: -M:按照月份进行排序: -n:按照数字进行排序: -r:反向排序: -u:等同于 uniq,表示相同的数据仅显示一行: -t:指定分隔符,默认使用[Tab]键分隔: -o <输出文件>:将排序后的结果转存至指定文件: -k:指定排序区域: 示例1:将 /etc/pa

sort、uniq、wc

sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 [[email protected] ~]# sort [-fbMnrtuk] [file or stdin] 选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同: -b :忽略最前面的空格符部分: -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法: -n :使

几个常用的文本处理shell 命令:find、grep、sort、uniq、sed、awk

find 文件查找 查找txt和pdf文件 find . \( -name "*.txt" -o -name "*.pdf" \) -print 查找所有字母开头的文件 find . -name "[a-a]*" 否定参数->查找所有非txt文本 find . ! -name "*.txt" -print 指定搜索深度->打印出当前目录的文件(深度为1) find . -maxdepth 1 -type f 正则方

Linux之cat、cut、sort、uniq、wc、tr常用选项总结

一.基础命令 cat命令:   cat [OPTION]... [FILE]...         -A, --show-all 等价于 -vET             -b, --number-nonblank 对非空输出行编号         -e 等价于 -vE         -E, --show-ends 在每行结束处显示 $         -n, --number 对输出的所有行编号         -s, --squeeze-blank 不输出多行空行         -t 与