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)、确保用花括号括起动作语句,用圆括号括起条件语句;
重点知识点:
1、AWK输出报头和报尾及格式化输出。
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个域值为Green和green的行
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个域值非Green和green的行 !~
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`是一个强大的文本分析工具,由Alfred Aho、Brian Kernighan和Peter Weinberger三位开发者创建,因此得名。`awk`的主要功能是处理文本和数据,通过匹配特定模式对文件中的行进行操作。在Linux系统中,...
本笔记主要涵盖了AWK的基础知识和高级特性,旨在帮助读者理解和掌握这一实用工具。 **一.1 什么是AWK?** AWK是由Aho、Weinberger和Kernighan三位计算机科学家开发的,它的名字就是由他们的姓氏首字母组成的。AWK是...
### awk学习使用笔记及举例 #### 1. awk简介 awk是一种专为文本处理...以上是对awk学习使用笔记的一个概述,包含了从基本概念到高级技巧的内容。通过理解和掌握这些知识点,可以有效地利用awk进行文本处理和数据分析。
它支持用户自定义函数和 动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,...
`awk` 是一种强大的文本分析工具,常用于处理和解析结构化的文本文件,如日志文件、配置文件等。在Linux和Unix系统中,`awk` 提供了一种灵活的方式来提取、过滤和处理数据。本篇文章将深入讲解 `awk` 的基本用法和...
awk 是一种强大的文本分析工具,尤其在Linux和Unix系统中广泛使用。它允许用户通过模式匹配和处理规则对输入数据进行操作,特别适合于处理结构化的文本文件,如日志文件、配置文件等。本笔记将深入探讨awk的基本概念...
使用AWK时,可以按照以下三种方式之一调用AWK命令: 1. 直接在命令行中嵌入AWK脚本,并指定输入文件。例如: ``` awk '[options] program-text file-list' ``` 其中,`[options]` 是AWK的常用选项,比如 `-F` ...
AWK是一种强大的文本分析工具,尤其在Linux和Unix环境下被广泛使用。它能够对文本文件中的数据行进行处理,提取、分析或者转换数据,非常适合数据分析和报告生成。本笔记将详细介绍AWK的基本概念、语法、命令选项...
### PDF电子书《Awk学习笔记2010修改版》相关知识点 #### AWK简介 AWK是一种强大的脚本语言,由Alfred V. Aho、Peter J. Weinberger和Brian W. Kernighan在1977年设计并实现。这三位计算机科学家的名字首字母合成了...
awk是一种强大的文本分析工具,广泛应用于Linux和Unix系统中。它的名字来源于三位创始人Alfred Aho、Brian Kernighan和Peter Weinberger的首字母。awk能够处理文本文件、标准输入和其他命令的输出,通过匹配特定模式...
AWK是一种强大的文本分析工具,尤其在处理结构化数据文件时效率极高。它以其独特的模式匹配和编程能力,被广泛应用于系统管理和数据分析中。以下是对标题和描述中提及的AWK学习知识点的详细阐述: 1. **AWK的定义**...
awk学习笔记主要涵盖了awk编程语言的基础知识和常用功能。awk是一种强大的文本分析工具,尤其在Linux/Unix环境下广泛使用。它能够处理标准输入、文件或其它命令的输出,通过模式匹配对文本进行分析和处理。 1. **...
sed awk 学习笔记 SED 是一个“非交互式”的面向字符流的编辑器,它可以在一个地方指定所有的编辑指令,然后通过文件传递一次来执行他们。但是它在每次多于一行的处理能力方面有限制。SED 的优点是可以批量处理文件...
这本书为程序员提供了一个详细的指南,以学习如何使用这个强大的文本处理工具。 标签包含了“GNU AWK 编程 说明书 教程”,这表明这本书是关于GNU AWK编程的详细说明和教程。GNU AWK(GAWK)是一个功能强大的工具,...
GNU Awk,又称GAWK,是一种强大的文本处理工具,它允许用户以一种简单而有效的方式在文本文件中执行复杂的模式匹配、数据提取、数据转换和报告生成。《GAWK: Effective AWK Programming - GNU Awk编程经典》是一本...
文件名`awk学习-20101008.doc`可能包含了作者在2010年10月8日整理的awk学习笔记,涵盖了基本语法、常用命令和实战案例。可能包括以下内容: 1. **基本语法**:介绍awk的基本结构,如模式-动作对,以及如何指定输入...
awk是一种强大的文本分析工具,主要用于在Linux/Unix环境中处理文本和数据。它的名字来源于三位创始人——Alfred Aho、Brian Kernighan和Peter Weinberger的首字母。awk通过匹配文本中的模式来执行指定的操作,它...