目录

取ifconfig bond0的IP地址    1

命令如下:    2

统计apache日志单IP访问请求数排名    2

第一种方法    2

第二种方法    2

统计域名访问量    3

第一种方法:    3

第二种方法:    3

计算每个人的总工资和平均工资    4

命令如下:    4

对本地IP和远程IP去重并统计重复数    4

命令如下:    5

统计源IP,端口及目的IP同时去重    6

命令如下:    6

美化效果如下:    7

取ifconfig bond0的IP地址

 [root@xuegod68 mnt]# ifconfig bond0

 bond0 Link encap:Ethernet HWaddr :0C:::8F:AD

 inet addr:192.168.1.123 Bcast:192.168.1.255 Mask:255.255.255.0

 inet6 addr: fe80::20c:29ff:fe27:8fad/ Scope:Link

 UP BROADCAST RUNNING MASTER MULTICAST MTU: Metric:

 RX packets: errors: dropped: overruns: frame:

 TX packets: errors: dropped: overruns: carrier:

 collisions: txqueuelen:

 RX bytes: (36.7 MiB) TX bytes: (1008.6 KiB)

命令如下:

 [root@xuegod68 mnt]# ifconfig bond0 |awk -F "[ :]+" 'NR==2{print NR" "$4}'

  192.168.1.123

统计apache日志单IP访问请求数排名

 [root@xuegod68 mnt]# head - .txt

 10.0.0.3 -- [/Mar/-::+]*GET/HTTP/1.1*  *-*

 10.0.0.3 -- [/Mar/-::+]*GET/HTTP/1.1*  *-*

 10.0.0.5 -- [/Mar/-::+]*GET/HTTP/1.1*  *-*

 10.0.0.3 -- [/Mar/-::+]*GET/HTTP/1.1*  *-*

 10.0.0.6 -- [/Mar/-::+]*GET/HTTP/1.1*  *-*

第一种方法

[root@xuegod68 mnt]# awk '{print $1}' .txt |sort|uniq -c

 10.0.0.3

 10.0.0.4

 10.0.0.5

 10.0.0.6

第二种方法

[root@xuegod68 mnt]# awk '{array[$1]++} END {for(key in array) print key,array[key]}' 2.txt

10.0.0.3 35

10.0.0.4 5

10.0.0.5 10

10.0.0.6 10

  

统计域名访问量

[root@xuegod68 mnt]# cat .txt

http://www.baidu.com/index.html

http://www.163.com/1.html

http://www.cnblogs.com/index.html

http://www.baidu.com/2.html

http://www.163.com/index.html

http://www.qq.com/index.html

http://www.baidu.com/3.html

http://www.163.com/2.html

http://www.baidu.com/2.html

第一种方法:

 [root@xuegod68 mnt]# awk '{split($0,array,"/+");key=array[2];count[key]++}END{for(kk in count) print kk,count[kk]}' .txt

 www.qq.com 

 www.cnblogs.com 

 www.baidu.com 

 www..com 

第二种方法:

 [root@xuegod68 mnt]# awk -F [/]+ '{array[$2]++} END {for(key in array) print key,array[key]}' .txt

 www.qq.com 

 www.cnblogs.com 

 www.baidu.com 

 www..com 

计算每个人的总工资和平均工资

 [root@xuegod68 mnt]# cat .txt

  wodi 12k

  yingsui 15k

  jeacen 10k

  yideng 10k

  kuqi 8k

  xiaofen 6k

  wodi 11k

  yingsui 12k

  jeacen 4k

  kuqi 12k

  yideng 11k

  xiaofen 10k

命令如下:

[root@xuegod68 mnt]# awk '{array[$2]+=$3;count[$2]++}END{for(key in array) print key,array[key]"k",array[key]/count[key]}' 3.txt

kuqi 20k 10

jeacen 14k 7

yingsui 27k 13.5

xiaofen 16k 8

wodi 23k 11.5

yideng 21k 10.5

  

对本地IP和远程IP去重并统计重复数

 [root@xuegod68 mnt]# cat .txt

 Proto Recv-Q Send-Q Local Addree Foreign Addree              State

 tcp                      0.0.0.0:         0.0.0.0:*     LISTEN

 tcp                      115.29.49.213: 117.136.27.254:     SYN_RECV

 tcp                      115.29.49.213:     113.97.117.157:     SYN_RECV

 tcp                      115.29.49.213:     117.136.40.20:     SYN_RECV

 tcp                      115.29.49.213:     117.136.40.20:     SYN_RECV

 tcp                      115.29.49.213:     121.236.219.69:     SYN_RECV

 tcp                      0.0.0.0:         0.0.0.0:*     LISTEN

 tcp                      0.0.0.0:     0.0.0.0:*         LISTEN

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

 unix          [] SYREAM CONNECTED  /TMP/MYSQL.SOCK

命令如下:

 [root@xuegod68 mnt]# awk -F "[ :]+" '/^tcp/{array[$3" "$5]++}END{for(key in array) print key,array[key]}' .txt

 115.29.49.213 113.97.117.157 

 115.29.49.213 117.136.27.254 

 0.0.0.0 0.0.0.0 

 115.29.49.213 117.136.40.20 

 115.29.49.213 121.236.219.69 

统计源IP,端口及目的IP同时去重

 [root@xuegod68 mnt]# head - .txt

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (TCP 10.0.0.131:->210.192.121.172: on ixp7) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (TCP 10.0.0.131:->210.192.121.172: on ixp7) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (TCP 10.0.0.131:->210.192.121.172: on ixp7) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (TCP 10.0.0.131:->210.192.121.172: on ixp7) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (TCP 10.0.0.131:->210.192.121.172: on ixp7) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (TCP 10.0.0.43:->203.81.19.92: on ppp6) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (UDP 10.0.0.19:->121.14.96.233: on ppp0) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (UDP 172.16.1.103:->211.147.6.3: on ppp2) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (TCP 172.16.1.203:->61.135.163.86: on ixp7) [,]

 Dec  :: 10.0.0.0  RV016 RGFW-OUT:ACCEPT (TCP 10.0.0.131:->210.192.121.172: on ixp7) [,]

命令如下:

 [root@xuegod68 mnt]# vim .sh

 {

 split($,array,":|->")

 sip=array[]

 sport=array[]

 mip=array[]

 if (!((sip,sport,mip) in tree)){

 tree[sip,sport,mip] = 

 }

 }

 END{

 for (key in tree)

 print key

 }
 [root@xuegod68 mnt]# awk -f .sh .txt

 172.16.1.10357318211.147.6.

 10.0.0.191441121.14.96.

 172.16.1.203437261.135.163.

 10.0.0.4354963203.81.19.

 10.0.0.1311227210.192.121.

美化效果如下:

[root@xuegod68 mnt]# cat 5.sh
BEGIN{
printf("%-16s %-6s %-16s\n","SIP","SPORT","MIP")
}
{
split($9,array,":|->")
sip=array[1]
sport=array[2]
mip=array[3]
if (!((sip,sport,mip) in tree)){
tree[sip,sport,mip] = 1
}
}
END{
for (key in tree){
split(key,out,SUBSEP)
printf("%-16s %-6s %-16s\n", out[1],out[2],out[3])
}
}

  

 [root@xuegod68 mnt]# awk -f .sh .txt

 SIP SPORT MIP

 172.16.1.103  211.147.6.3

 10.0.0.19  121.14.96.233

 172.16.1.203  61.135.163.86

 10.0.0.43  203.81.19.92

 10.0.0.131  210.192.121.172

Linux命令之awk数组使用范例的更多相关文章

  1. 【linux】linux命令grep + awk 详解

    linux命令grep  +  awk 详解 grep:https://www.cnblogs.com/flyor/p/6411140.html awk:https://www.cnblogs.com ...

  2. linux命令之awk命令

    awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linu ...

  3. 程序猿必知必会Linux命令之awk

    前言 对于一名专业的程序员来说,Linux相关知识是必须要掌握的,其中对于文本的处理更是我们常见的操作,比如格式化输出我们需要的数据,这些数据可能会来源于文本文件或管道符,或者统计文本里面我们需要的数 ...

  4. Linux常用基本命令:三剑客命令之-awk数组用法

    AWK的数组用法跟javascript类似. 1,定义数组 awk 'BEGIN{a[0]="zhangsan";a[1]="lisi";print a[0]} ...

  5. linux命令之awk

    简介 awk命令的名称是取自三位创始人Alfred Aho .Peter Weinberger 和 Brian Kernighan姓名的首字母,awk有自己的程序设计语言,设计简短的程序,读入文件,数 ...

  6. Linux 命令的20个实用范例,入门必看!

    Tips: 达内Linux云计算免费课程火热抢报中,点击文末“阅读原文”快速抢! Linux中一个基本命令是ls.没有这个命令,我们会在浏览目录条目时会遇到困难.这个命令必须被每个学习Linux的人知 ...

  7. Linux命令之乐--awk

    1.脚本参数传值 #/bin/bash awk '"} {if(($1==a)) print $2;}' /etc/hosts 执行结果:

  8. linux命令和awk

    1.统计一下代码量 find . -name "*.py" | xargs wc -l | awk 'BEGIN {size = 0} { size+=$1} END{print ...

  9. Linux命令:awk求和、平均值、最大最小值

    本文链接:https://blog.csdn.net/wyqwilliam/article/details/825600431.求和cat data|awk '{sum+=$1} END {print ...

随机推荐

  1. Struts2 有关于无法正常的使用通配符

    今天使用struts 2.3.4版本,做了一个通配符的小测试,结果其他的Action都能正常的使用,但是使用通配符的Action不能正常的使用.网上找了很久,最后发现,貌似strust2.3版本以上的 ...

  2. RTTI 运行时类型识别 及异常处理

    RTTI   运行时类型识别 typeid  ------  dynamic_cast dynamic_cast 注意事项: 1.只能应用于指针和引用之间的转化 2.要转换的类型中必须包含虚函数 3. ...

  3. 关于兼容性——百分比对于IE浏览器的影响

    之前为了适应页面放大或者缩小,很多宽度都是写的百分比,后来发现有产生换行现象 总结一下: 如果页面是满占位的,我想百分比在谷歌.火狐都应该没什么问题,在IE 就会产生换行  因为IE浏览器存在一个四舍 ...

  4. Hishop网站迁移后出现DataProtectionConfigurationProvider错误

    错误代码如下: 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误信息: 未能使用提供程序“DataProtectionCon ...

  5. delphi7 在虚拟机 vbox里面安装失败

    提示Error 1324.The path My Pictures contains an invalid character. 解决办法:新建一个文件夹,123, 设置 我的文档文件夹 目录指向 “ ...

  6. Python模块:itertools

    itertools模块:循环器 一,无穷循环器:count,cycle,repeat (1)count(5,3) #从5开始的整数循环器,每次增加3,即:5,8,11,14,17... from it ...

  7. tomcat(三)--基本安装配置

    0x01  JDK和Tomcat安装 到oracle官网下载jdk,当前下载的版本是Linux x64 jdk-8u101-linux-x64.tar.gz 到apache官网下载tomcat,当前最 ...

  8. Scala学习笔记一

    首先是安装Scala 下载Scala进行安装 http://www.scala-lang.org/ 安装好scala后,为scala配置系统环境参数 新建环境变量SCALA_HOME,值为scala安 ...

  9. CSS里常见的块级元素和行内元素

    根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为“block”,成为“块级 ...

  10. oracle for loop循环以及游标循环

    1. for in loop形式 DECLARE    CURSOR c_sal IS SELECT employee_id, first_name || last_name ename, salar ...