`
cuijiemin
  • 浏览: 263233 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

Awk是一种处理结构数据并输出格式化结果的编程语言,Awk是其作者"Aho,Weinberger,Kernighan"的简称。

Awk通常被用来进行格式扫描和处理。通过扫描一个或多个文件中的行,查看是否匹配指定的正则表达式,并执行相关的操作。

Awk的主要特性包含:

1.Awk以记录和字段的方式来查看文本文件

2.和其他编程语言一样,Awk包含变量、条件和循环

3.Awk能够进行运算和字符串操作

4.Awk能够生成格式化的报表数据

Awk从一个文件或者标准输入中读取数据,并输出结果到标准输出中。

1.Awk的语法

在上诉语法中:

1.searchpattern是正则表达式

2.Actions输出的语法

3.Awk中可以存在多个正则表达式和多个输出定义

4.file输入文件名

5.单引号的作用是包裹起来防止shell截断

2.Awk的工作方式:

1Awk一次读取文件中的一行

2)对于一行,按照给定的正则表达式的顺序进行匹配,如果匹配则执行对应的Action

3)如果没有匹配上则不执行任何动作

4)在上诉的语法中,SearchPatternAction是可选的,但是必须提供其中一个

5)如果SearchPattern未提供,则对所有的输入行执行Action操作

6)如果Action未提供,则默认打印出该行的数据

7{}这种Action不做任何事情,和未提供的Action的工作方式不一样

8Action中的语句应该使用分号分隔

创建一个包含下面内容的文本文件employee.txt。后续的例子中将会用到该文件

3.Awk的默认行为

默认的时候awk打印文件中的每一行

在上面的例子中,匹配的正则表达式未给出,因此后续的Action适用所有的行,Action中的print没有任何参数的情况下将打印整行,注意其中的Action必须使用{}括起来。

4.Awk打印匹配的行

在上面的例子中,将打印包含ThomasNisha的行,上面的列子包含两个正则表达式。Awk可以接受任意数量的正则表达式,但是每个组合(正则表达式和对应的Action)必须用新行来分隔。

5.Awk仅打印指定的域

Awk包含许多内建的变量,对于每行的记录,Awk默认按照空格进行分割,并将分隔后的值存入对应的$n变量中。如果一行还有4个单词,将被分别存储进$1$2$3$4中,其中$0代表整行。NF也是一个内建的变量,代表该行中分割后的变量数。

    在上诉例子中$2$5分别代表名字和薪水,也可以使用$NF获得薪水,其中$NF代表最后一个字段,在打印语句中逗号是一个连接符号。

    6.Awk开始和最后的动作

    Awk包含两个重要的关键字BEGINEND

    BEGIN节中的Actions会在读取文件中的行之前被执行。

    END节中的Actions会在读取并处理文件中的所有行后被执行。

    上述的例子为输出结果增加头和尾描述

    7.Awk找出员工ID大于200的员工

    在上述例子中,$1代表员工ID,如果员工ID大于200则执行默认的打印整行的Action

    8.Awk打印技术部员工

    $4代表员工所在的部门,如果等于Technology则打印出整行

    ~操作符是和正则表达式中的值进行比较,如果匹配则打印整行

    9.Awk打印技术部门的员工数

    在下面的例子中,检查员工的部门是否是Technology,如果是则递增count变量的值。Count变量的值在BEGINActions中被初始化为0

    在处理的最后(ENDActions),仅仅打印出Technology部门的人数

    分享到:
    评论

    相关推荐

      awk脚本学习快速入门

      本资料包是针对awk脚本学习的快速入门教程,旨在帮助初学者快速掌握awk的基本用法和高级技巧。 一、awk简介 awk是由Aho、Weinberger和Kernighan三位大牛命名的(取首字母),最初设计用于处理结构化的文本数据,如...

      awk知识文档学习

      - **在线文档**: GNU Awk官方手册和相关的在线资源可以作为学习参考。 以上知识点涵盖了Awk的基础概念、程序结构、字段和记录的处理方法、格式化输出的技巧,以及Awk命令在实际中的应用。通过深入学习和实践这些...

      shell 里 awk print 的用法详解

      现在,我们通过几个示例来学习awk `print`的使用: **示例1**:默认行为 ```bash awk '{print;}' employee.txt ``` 这个例子中没有指定模式,所以awk会打印`employee.txt`文件的每一行。 **示例2**:基于模式的...

      awk基础篇学习文档

      AWK中的print和printf函数用于输出,其中print是最基本的输出函数,而printf则能提供更多的格式化选项,类似于C语言的printf函数。它们可以根据需要在输出时进行格式化,包括控制数字的小数位数、填充字符、宽度等。...

      AWK语言学习资料--基础知识

      - `'{ print $0 }'` 是AWK的典型用法,它会打印输入的整行。 - 分隔符:默认情况下,AWK使用空格或制表符作为字段分隔符,但可以通过`FS`变量自定义,如`'{FS=":"}'`设置为冒号。 - 输出分隔符:`OFS`变量可以...

      AWK学习笔记.doc

      通过深入学习这些章节,你可以掌握AWK的基本概念和高级技巧,从而在数据处理任务中发挥出AWK的强大能力。无论你是数据分析新手还是经验丰富的开发者,理解并熟练运用AWK都能极大地提升你的工作效率。

      awk入门级教材awk入门awk入门

      ### awk入门级教材知识点详解 #### 一、awk简介 **awk** 是一种强大的文本处理工具,主要用于在一组文件上查找符合特定模式的行或字段,并执行相应的操作。它简化了数据选择和转换的过程,使其变得更为直观和简单...

      linux awk学习笔记

      `awk`的学习需要结合实际案例进行,通过编写和运行脚本来熟悉其用法和功能。 总结,`awk`是Linux文本处理的重要工具,其灵活性和强大的功能使其在数据分析、日志分析等领域有着广泛的应用。通过深入学习和实践,...

      awk学习awk学习awk学习awk学习

      ### awk学习要点详解 #### 一、awk简介与基本用法 **awk** 是一种强大的文本处理工具,常用于Linux/Unix系统中进行数据提取、分析及格式化工作。其名称来源于三位创建者:Alfred Aho、Brian Kernighan 和 Peter ...

      awk参考资料下载awk

      【awk参考资料】深入理解awk awk是一种强大的文本分析工具,主要在Linux/Unix环境中使用,由Alfred Aho、Brian Kernighan和Peter Weinberger三...学习并熟练掌握awk,将极大地提升你在文本处理和数据分析方面的效率。

      awk入门最好的资料

      awk '/error/ {print $0}' ``` ### 3. 字段分隔符 默认情况下,awk使用空格或制表符作为字段分隔符,但可以通过`FS`变量自定义。例如,将字段分隔符设置为逗号: ```awk awk 'BEGIN {FS = ","} {print $1}' ``` ...

      AWK脚本学习文档 Linux

      通过这个学习文档,你可以逐步掌握AWK脚本的使用,进一步提升在Linux环境下的文本处理能力。AWK的强大在于其灵活性和高效性,能帮助你解决许多数据分析和文本处理问题。在实际工作中,熟练运用AWK可以大大提高工作...

      awk学习资料最近整理的资料

      在"awk学习资料最近整理的资料"这个压缩包中,你可以找到一系列关于awk的学习资源,帮助你掌握这一技能。以下是一些主要的awk知识点: 1. **基本语法**:awk的工作原理基于行处理,每一行被视为一个记录,每个记录...

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

      `awk` 是一种强大的文本分析工具,常用于处理和解析结构化的文本文件,如日志文件、配置文件等。在Linux和Unix系统中,`awk` ...通过不断地实践和学习,你将能够有效地利用 `awk` 解决日常工作中遇到的文本处理问题。

      awk手册,学习AWK一定要收藏

      学习AWK的最佳方式是从实践中学习。除了本文提供的基础指南外,还可以参考以下资源: 1. **官方文档**:访问GNU AWK的官方网站获取最新文档。 2. **在线教程**:互联网上有许多优秀的AWK教程,适合初学者和高级用户...

      awk教程入门到精通

      awk '{ sum += $3 } END { print sum }' processes 9. 输出/输入重定向 使用 awk 输出/输入重定向来处理数据: awk '{ print }' processes > output 这些实例只是 awk 的一些基本应用,awk 的功能远远不止这些。...

      AWK-学习笔记(共享)

      以下是对标题和描述中提及的AWK学习知识点的详细阐述: 1. **AWK的定义**: AWK是由Aho、Weinberger和Kernighan三位开发者命名的样式扫描和处理语言,主要用于从文本文件中提取数据或对数据进行格式化输出。它的...

      The AWK Programming Language 中文版

      AWK是一种非常实用的编程语言,它在文本处理和数据分析方面表现出色。它的特点是编写程序非常简单,即便是只有一两行的程序也能完成复杂的任务。...对于任何需要处理文本数据的用户,AWK都值得学习和掌握。

      AWK实例教程 AWK实例教程中文版

      - **启动AWK**:通过命令行启动AWK,例如`awk '{print}' /etc/passwd`。这条命令会打印出`/etc/passwd`文件的所有内容。 - **代码块与命令**:在AWK中,花括号`{}`用于定义代码块。当代码块内仅包含一条命令时,...

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

      awk是一种强大的文本分析工具,广泛应用于Linux和Unix系统中。...学习awk能够极大地提升在Linux和Unix环境下处理文本数据的能力。通过深入理解和实践,你可以利用awk解决各种数据处理挑战,提高工作效率。

    Global site tag (gtag.js) - Google Analytics