awk:

强大的文本处理工具,擅长对日志文件进行分析;

不仅用于Linux,也是任何环境中现在的功能最强大的数据处理引擎;

语法说明:

awk '{pattern + action}' {filenames}

pattern:指在数据中要查找的内容;

action:指要操作的指令。

{}可以对一系列指令进行分组,不一定要出现。pattern要表达的正则表达式要用斜杠括起来。

通常,awk是以文件的一行为处理单位,每接收一行就执行相应的命令。

三种调用方法:

  1. 命令行:

    awk [-F field-separator] 'commands' input-files

field-separator:域分隔符,指文件每一行中每个域分隔的符号,默认为空格。

  1. shell脚本:

    将所有awk命令插入到一个文件,并使awk程序可执行,awk命令解释器作为脚本的首行。

    #!/bin/awk

  2. 将所有awk命令插入到单独文件,调用:

    awk –f script-file input-files

    -f选项加载script-file中的awk脚本。

awk执行流程:

示例:

  1. awk '{print $1}' access.201204

    意思:显示access.201204文件的每一行中的第一个$1数据,$1为每一行中空格相隔的第一个字串,$2为第二个字串,以此类推。

    如果将print $1保存在文件内,假设保存为test1,则可以写成:awk –f test1 access.201204

  2. awk '$1~/sina/{print $1}' e20120706

    意思:$1字串匹配sina字符串时,则执行print $1。

  3. awk '{ip[$1]++} END { for (i in ip) {print i,ip}}' access.2028 | less |sort -nr

    意思:将每行$1作为ip数组下标,进行重复计数统计,完后再循环ip数组,显示下标和统计结果,并按降序排列。

内置变量:

操作符:

常用的字符串函数:

控制流和循环:

数组输出:

参考笔记:

http://linux.vbird.org/somepaper/20090427-learn_sed_and_awk.pdf

awk 文本处理工具的更多相关文章

  1. AWK文本处理工具(Linux)

    AWK文本处理工具(Linux) PS:刚开始实习,就给了个处理百万级别数据的任务,以前学过SHELL的一些东西sed/awk之类的处理,但是也没有具体的应用,只是在10几行10几列的小数据操作过,所 ...

  2. Linux - awk 文本处理工具一

    AWK AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一:awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命 ...

  3. Linux 之 awk文本分析工具

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

  4. awk文本分析工具

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

  5. Linux - awk 文本处理工具六 - 日志关键字筛选

    查看多少行 ? awk '{print NR}' access.log |tail -n1 日期时间筛选检测 awk '/Dec 10/ {print $0}' /opt/mongod/log/mon ...

  6. Linux - awk 文本处理工具五

    awk 线上处理常用模式 awk 处理复杂日志 6.19: DHB_014_号百总机服务业务日报:广州 到达数异常! DHB_023_号百漏话提醒日报:珠海 到达数异常! 6.20: DHB_014_ ...

  7. Linux - awk 文本处理工具四

    awk 常用示例 获取本机 IP 方式 /sbin/ifconfig |awk -v RS="Bcast:" '{print $NF}'|awk -F: '/addr/{print ...

  8. Linux - awk 文本处理工具三

    AWK 文件打印匹配 格式示例 awk '/Tom/' file # 打印匹配到得行 awk '/^Tom/{print $1}' # 匹配Tom开头的行 打印第一个字段 awk '$1 !~ /ly ...

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

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

随机推荐

  1. 【Python】socket编程-2

    #练习3:TCP协议+while循环 服务端: import socket #socket模块 import sys reload(sys) sys.setdefaultencoding(" ...

  2. Linux 下各个目录的作用及内容

    在 Linux 下,我们看到的是文件夹(目录): 在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱.Linux 面世不久后,对文件目录进行了标准化,于1994年对 ...

  3. 11.2.0.4单实例DRCP(Database Resident Connection Pooling)简单测试

    DRCP配置及测试 一. DRCP介绍 数据库提供会话进程在数据库中使用资源的方式: 1)Dedicated Server,一个会话在数据库中对应一个专有进程,一对一服务(资源数据库占用过多,一般使用 ...

  4. 将mysql的表导出为excel

     1.在表上右键,选择Table Data Export Wizard,选择想要导出的字段,点击next 2.选择导出文件的路径->csv格式->next 3.点击next 4.打开刚才导 ...

  5. 关于Java堆、栈和常量池的详解

    在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register).      这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部.但是寄存器的数量极其有限,所以寄存器由编译 ...

  6. XXS level2

    (1)用level1的方法尝试,发现行不通 (2)查看PHP源代码 <?php ini_set("display_errors", 0); $str = $_GET[&quo ...

  7. ZOJ 1006:Do the Untwist(模拟)

    Do the Untwist Time Limit: 2 Seconds      Memory Limit: 65536 KB Cryptography deals with methods of ...

  8. 字符串转json格式

    方法一:var json = JSON.parse(str)方法二:eval

  9. django 一个关于分组查询的问题分析

    ret=Emp.objects.values('dep').annotate(avg_salary=Avg('salary')) print(ret) # ---*******单表分组查询ORM总结: ...

  10. 实验吧—Web——WP之 简单的sql注入之2

    直接打开解题连接: 既然是SQL注入,那么我们就要构造注入语句了,这个就要有耐心一个一个去尝试了 输入语句 1'and 1=1 # 和 1'and/**/1=1/**/#后 对比一下,发现是过滤掉了空 ...