`
luoxiaohui_java
  • 浏览: 13207 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

AWK工具使用学习笔记(一)

阅读更多

 

AWK 介绍:一个报文格式化,从文本文件中抽取数据包的工具。

思维: 基于模式动作形式,在动作前指定特定的模式,使动作在记录满足模式时才执行。

 

基本概念:

1、模式和动作:

模式:即触发动作的条件,模式部分决定动作何时触发及触发事件。

可以是:a 条件语句 if($4=="Green")

                 b 复合语句  and &&)、 or||)、! 

                 c 正则表达式   awk '$0 ~/[Gg]reen/  {print  $0}'  grade.txt

动作:对数据进行的操作。 动作必须用{}括起来

2、域和记录:

域:awk将标准输入的每一行按照分隔符分成n个域,依次为$1,$2,$3,…,$n

要输出域采用print语句,输出所有域使用$0.

 

 

判断AWK语句错误的一些依据:

1)、确保整个awk命令用单引号括起来

2)、确保命令内的所有引号成对出现

3)、确保用花括号括起动作语句,用圆括号括起条件语句

 

重点知识点:

1AWK输出报头和报尾及格式化输出。

BEGIN  END  采用print语句格式输出

例如:

awk 'BEGIN {print "Name    Belt\n----------------------"} {print

 $1 "\t\t" $4} END {print "end-of-report"}' grade.txt

Name    Belt

----------------------

M.Tansley       05/99   48311   Green   8       40      44

J.Lulu          06/99   48317   green   9       24      26

P.Bunny         02/99   48      Yellow  12      35      28

J.Troll         07/99   4842    Brow-3  12      26      26

L.Tansley       05/99   4712    Brow-3  12      30      28

end-of-report

tom@svr:~/ssh$    

BEGIN: 设置计数和打印头

END用来在a w k完成文本浏览动作后打印输出文本总数和结尾状态标志

 

2、使用正则表达式  ~

1)打印第4个域值为Greengreen的行

tom@svr:~/ssh$ awk '{if($4~/[Gg]reen/) print $0}' grade.txt

M.Tansley       05/99   48311   Green   8       40      44

J.Lulu          06/99   48317   green   9       24      26

tom@svr:~/ssh$  

2)打印第4个域值非Greengreen的行  !~

tom@svr:~/ssh$ awk '{if($4!~/[Gg]reen/) print $0}' grade.txt

P.Bunny         02/99   48      Yellow  12      35      28

J.Troll         07/99   4842    Brow-3  12      26      26

L.Tansley       05/99   4712    Brow-3  12      30      28

tom@svr:~/ssh$

3)匹配行中出现有特定字符的行,省去了if条件

tom@svr:~/ssh$ awk '$0 ~/[Gg]reen/ {print $0}' grade.txt

M.Tansley       05/99   48311   Green   8       40      44

J.Lulu          06/99   48317   green   9       24      26

tom@svr:~/ssh$

 

3、条件表达式

完全匹配某字符串  ==

tom@svr:~/ssh$ awk '{if($4=="Green") print $0}' grade.txt

M.Tansley       05/99   48311   Green   8       40      44

tom@svr:~/ssh$

不可写成:

awk 'if($4=="Green") {print $0}' grade.txt

if条件是动作的一部分,必须与动作写在一个花括号内。

 

 

AWK内置变量:

NR:已读的记录数

NF:浏览记录的域个数

FILENAME: awk浏览的文件名 awk一次可以浏览多个文件

 

tom@svr:~/ssh$ awk '{if(NR>0 && $4~/(green|Green)/) print $0}' grade.txt

M.Tansley       05/99   48311   Green   8       40      44

J.Lulu          06/99   48317   green   9       24      26

tom@svr:~/ssh$

 

分享到:
评论

相关推荐

    linux awk学习笔记

    Linux中的`awk`是一个强大的文本分析工具,由Alfred Aho、Brian Kernighan和Peter Weinberger三位开发者创建,因此得名。`awk`的主要功能是处理文本和数据,通过匹配特定模式对文件中的行进行操作。在Linux系统中,...

    AWK学习笔记.doc

    本笔记主要涵盖了AWK的基础知识和高级特性,旨在帮助读者理解和掌握这一实用工具。 **一.1 什么是AWK?** AWK是由Aho、Weinberger和Kernighan三位计算机科学家开发的,它的名字就是由他们的姓氏首字母组成的。AWK是...

    awk学习使用笔记及举例

    ### awk学习使用笔记及举例 #### 1. awk简介 awk是一种专为文本处理...以上是对awk学习使用笔记的一个概述,包含了从基本概念到高级技巧的内容。通过理解和掌握这些知识点,可以有效地利用awk进行文本处理和数据分析。

    Awk学习笔记和指南

    它支持用户自定义函数和 动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,...

    awk学习笔记,从论坛整理而来

    `awk` 是一种强大的文本分析工具,常用于处理和解析结构化的文本文件,如日志文件、配置文件等。在Linux和Unix系统中,`awk` 提供了一种灵活的方式来提取、过滤和处理数据。本篇文章将深入讲解 `awk` 的基本用法和...

    awk 学习笔记加例子

    awk 是一种强大的文本分析工具,尤其在Linux和Unix系统中广泛使用。它允许用户通过模式匹配和处理规则对输入数据进行操作,特别适合于处理结构化的文本文件,如日志文件、配置文件等。本笔记将深入探讨awk的基本概念...

    linux下AWK学习笔记

    AWK是一种强大的文本分析工具,尤其在Linux和Unix环境下被广泛使用。它能够对文本文件中的数据行进行处理,提取、分析或者转换数据,非常适合数据分析和报告生成。本笔记将详细介绍AWK的基本概念、语法、命令选项...

    PDF电子书《Awk学习笔记2010修改版》

    ### PDF电子书《Awk学习笔记2010修改版》相关知识点 #### AWK简介 AWK是一种强大的脚本语言,由Alfred V. Aho、Peter J. Weinberger和Brian W. Kernighan在1977年设计并实现。这三位计算机科学家的名字首字母合成了...

    awk学习笔记(学习awk编程的好帮手)

    awk是一种强大的文本分析工具,广泛应用于Linux和Unix系统中。它的名字来源于三位创始人Alfred Aho、Brian Kernighan和Peter Weinberger的首字母。awk能够处理文本文件、标准输入和其他命令的输出,通过匹配特定模式...

    AWK-学习笔记(共享)

    AWK是一种强大的文本分析工具,尤其在处理结构化数据文件时效率极高。它以其独特的模式匹配和编程能力,被广泛应用于系统管理和数据分析中。以下是对标题和描述中提及的AWK学习知识点的详细阐述: 1. **AWK的定义**...

    awk学习笔记

    awk学习笔记主要涵盖了awk编程语言的基础知识和常用功能。awk是一种强大的文本分析工具,尤其在Linux/Unix环境下广泛使用。它能够处理标准输入、文件或其它命令的输出,通过模式匹配对文本进行分析和处理。 1. **...

    GAWK: Effective AWK Programming;AWK说明书

    这本书为程序员提供了一个详细的指南,以学习如何使用这个强大的文本处理工具。 标签包含了“GNU AWK 编程 说明书 教程”,这表明这本书是关于GNU AWK编程的详细说明和教程。GNU AWK(GAWK)是一个功能强大的工具,...

    GAWK-Effective AWK Programming - GNU Awk编程经典

    GNU Awk,又称GAWK,是一种强大的文本处理工具,它允许用户以一种简单而有效的方式在文本文件中执行复杂的模式匹配、数据提取、数据转换和报告生成。《GAWK: Effective AWK Programming - GNU Awk编程经典》是一本...

    awk学习的相关内容

    文件名`awk学习-20101008.doc`可能包含了作者在2010年10月8日整理的awk学习笔记,涵盖了基本语法、常用命令和实战案例。可能包括以下内容: 1. **基本语法**:介绍awk的基本结构,如模式-动作对,以及如何指定输入...

    awk简介与学习笔记收集第1/3页

    awk是一种强大的文本分析工具,主要用于在Linux/Unix环境中处理文本和数据。它的名字来源于三位创始人——Alfred Aho、Brian Kernighan和Peter Weinberger的首字母。awk通过匹配文本中的模式来执行指定的操作,它...

Global site tag (gtag.js) - Google Analytics