使用方法
awk ‘{pattern + action}’ {filenames}
尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。
awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。
通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。
AWK基本语法
下面没有提到awk命令怎么使用了,你可以通过 运行:awk –h 查询到所有命令及参数!下面把awk作为一门语言分节介绍。
linux awk 内置变量使用介绍 awk语言中,怎么样定义自己变量
linux shell awk获得外部变量(变量传值)简介 awk怎么样获得外部传入变量
linux awk 运算符(算术运算符,赋值运算符,关系运算符,逻辑运算符,正则运算符)说明 awk各种运算符有哪些
linux awk 字符串连接操作(字符串转数字,数字转字符串) awk字符串操作方法及数据类型转换
linux awk数组操作详细介绍 awk定义数组方法
linux shell awk 流程控制语句(if,for,while,do)详细介绍 awk流程控制有哪些语句, 各自怎么样使用
linux awk 正则表达式、正则运算符详细介绍 awk强大的正则表达式使用
linux awk 内置函数详细介绍 awk常用函数及使用方法
linux awk 多文件操作2种实现方法 awk操作文件方法
AWK混合使用实例
shell awk实现实时监控网卡流量脚本(常见应用二) 做网卡流量监控
awk 分析web日志(页面执行时间)(常见应用3) 通过awk进行web日志分析
awk 多行合并【next 使用介绍】(常见应用4) 多文件合并awk next 使用方法
awk 数组排序多种实现方法 awk数组排序实现方法
1.命令行方式
awk [-F field-separator] ‘commands’ input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。
2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。
相当于shell脚本首行的:#!/bin/sh
可以换成:#!/bin/awk
3.将所有的awk命令插入一个单独文件,然后调用:
awk -f awk-script-file input-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。
Nginx 日志分析
1.根据访问IP统计UV
awk ‘{print $1}’ access.log|sort | uniq -c |wc -l
2.统计访问URL统计PV
awk ‘{print $7}’ access.log|wc -l
3.查询访问最频繁的URL
awk ‘{print $7}’ access.log|sort | uniq -c |sort -n -k 1 -r|more
4.查询访问最频繁的IP
awk ‘{print $1}’ access.log|sort | uniq -c |sort -n -k 1 -r|more
5.根据时间段统计查看日志
cat access.log| sed -n ‘/14/Mar/2015:21/,/14/Mar/2015:22/p’|more
6.访问最多的100个ip及访问次数
awk ‘{print $1}’ 日志地址 | sort | uniq -c | sort -n -k 1 -r | head -n 100
7.统计来自blog.rekfan.com 包含 ________wd=***********&_____ 并将***********提取出来
awk ‘{print $11}’ nginx.log|head -n 50|grep “blog.rekfan.com”|sed ‘s/^.*wd=//g’| sed ‘s/&.*$//g’