先创建一个文件:vim hi

取第2个字段和第3个字段:

awk '{print $2,$3}' hi     注意{}中的,逗号会在输出的时候转变为空格

加入字符说明:

显示整行:

指定字段分隔符:-F

内建变量:NF      NF:字段数量,  $NF代表最后一个字段

NR:行数

/regular expression/: 仅处理能够被此处的模式匹配到的行

取反:awk '!/^john/{print $2}' hi

上面的语句表示如果第三个字段大于等于500,则取第一和第三个字段

判断最后一个字段是否为/bin/bash,如果是则打印第一和最后一个字段

做模式匹配

cat hi

做行范围匹配

取得行范围:

if条件判断语句:判断第三个字段的值是否大于500

字符替换:

echo "this is a test" | awk 'gsub("test","abd")'

cat hi

while循环:

NF代表当前行的字段数,length是个函数,取得$i这个字段的字符长度

awk '/^tom/{i=1;while(i<=NF) {if(length($i)>=4){print $i,length($i)}; i++}}' hi

在while循环中又嵌套了if语句

上面的while语句也可以用for循环语句代替

awk '/tom/{for(i=1;i<=NF;i++) {print $i,length($i)}}' hi

实战:

  获得访问前10位的ip地址:cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10

  获取访问次数最多的文件或页面,取前20个:cat access.log | awk '{print $11}' | sort | uniq -c | sort -nr | head -20

  列出传输最大的几个exe文件(分析下载站的时候常用):cat access.log | awk '($7~/.exe/){print $10 " " $1 " " $4 " " $7}' | sort -nr | head -20

  列出输出大于200000byte(约200kb)的exe文件以及对应文件发生次数:cat access.log | awk '($10 > 200000 && $7~/.exe/){print $7}' | sort -n | uniq -c | sort -nr | head -100

  列出最最耗时的页面(超过60秒的)的以及对应页面发生次数:cat access.log | awk '($NF > 60 && $7 ~/.php/){print $7}' | sort -n | uniq -c | sort -nr | head -100

  统计网站流量(G):cat access.log | awk '{sum+=$10}END{print sum/1024/1024/1024}'

  统计404的连接:awk '($9~/404/)' access.log | awk '{print $9,$7}' | sort 

  

在Unix awk中两个特别的表达式,BEGIN和END,这两者都可用于pattern中(参考前面的awk语法),提供BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作

任何在BEGIN之后列出的操作(在{}内)将在Unix awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来显示变量和预置(初始化)变量,使

用END来输出最终结果

RS: 记录行分隔符

  文本A的内容为a|b|c

  awk 'BEGIN{ RS="|" } { print $0 }'  A   得到的结果如下

  

  如果文本A的内容如上图

  awk 'BEGIN{ ORS="|" }{ print $0 }' A  得到的结果为 a|b|c

ORS: 将换行符替换成你想要的符号

  

  

文本分析工具awk简单示例的更多相关文章

  1. linux 文本分析工具---awk命令(7/1)

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  2. Linux文本分析命令awk的妙用

    基本用法 awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理 awk命令格式如下 awk [-F field-sep ...

  3. Linux 之 awk文本分析工具

    AWK是一种处理文本文件的语言,是一个强大的文本分析工具.Linux环境中自带. awk调用方法 命令行 awk [-F field-separator] 'commands' input-file( ...

  4. linux文本分析利器awk

    转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...

  5. 文本处理工具awk

    目录 gawk:模式扫描和处理语言 awk语言 awk工作原理 print awk变量 自定义变量 printf命令 awk操作符 awk的条件判断 awk的循环 awk的数组 awk的函数 awk调 ...

  6. 文本处理工具-AWK

    awk简介 awk功能与sed相似,都是用来进行文本处理的.awk可以自动地搜索输入文件,并把每一个输入行切分成字段.许多工作都是自动完成的,例如读取每个输入行.字段分割. awk工作原理 awk一次 ...

  7. 内存使用分析工具Valgrind简单用法

    转载自 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html 暂时还未使用过,记录下,记录下,记录下 Valgrind的主要作者 ...

  8. awk文本分析工具

    Usage:awk [option] 'program' file ... awk [option] -f progfile file ... [optin]: -F fs 指定输入分隔符,fs可是字 ...

  9. AWK文本分析工具-常用场景(持续更新中)

    AWK help document:http://www.gnu.org/software/gawk/manual/gawk.html 问题 awk命令 备注 对请求IP统计分组排序?     显示列 ...

随机推荐

  1. 九度OJ1207

    题目给你了一个很大的n,然后让你去计算它的质因数.对N进行开方得到的是一个大约在32000左右的数,我们可以用埃氏筛法进行素数打表.对所有prime[i]<=sqrt(n),分别看prime[i ...

  2. gradle android

    从github下载两个开源项目: PagerSlidingTabStrip    |    Android-Universal-Image-Loader-master https://github.c ...

  3. [JS]以下是JS省市联动菜单代码

    以下是JS省市联动菜单代码: 代码一: <html> <head> <title></title> <script language=" ...

  4. 京东校招笔试(C++方向)编程题

    这次笔试是今年校招我参加的第一次笔试..出了很多状况,基础知识不扎实,导致选择题耽误了太多时间,导致后面的题目没做完,编程题也没有在 时间内写出来,基本没有面试机会了.不过我继续研究第二个编程题,在1 ...

  5. V$SGA_RESIZE_OPS.STATUS = ERROR, and MMAN / auto-tuning stops.

    Oracle Server - Standard Edition - Version: 10.2.0.3This problem can occur on any platform. SYMPTOMS ...

  6. Package 'DXCore for Visual Studio' has failed to load properly

    Since installing 13.1  I get Package 'DXCore for Visual Studio' has failed to load properly error wh ...

  7. Cv运动分析与对象跟踪(转)

    Cv运动分析与对象跟踪   目录 [隐藏] 1 背景统计量的累积 1.1 Acc 1.2 SquareAcc 1.3 MultiplyAcc 1.4 RunningAvg 2 运动模板 2.1 Upd ...

  8. xUtils框架介绍(三)

    接上回,继续介绍xUtils的最后两个模块:DbUtils和HttpUtils.首先先介绍第一个SQLite数据库操纵的简单ORM框架,只要能理解xUtils为我们提供的api,相信你也能熟练的把Db ...

  9. 洛谷P1472 奶牛家谱 Cow Pedigrees

    P1472 奶牛家谱 Cow Pedigrees 102通过 193提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 农民约翰准备 ...

  10. 2013款Mac Pro“神秘”主机详解

    2013款Mac Pro"神秘"主机详解 自2013年12月下旬新款Mac Pro在美国发布以来,经过一个月的等待终于在国内已到货,笔者亲自测试了这个号称"神秘" ...