`

[shell]awk

阅读更多
grep 更适合单纯的查找或匹配文本
sed 更适合编辑匹配到的文本
awk 更适合格式化文本,对文本进行较复杂格式处理
-------------------------------------------------------
本篇文章我们主要为大家介绍 AWK 是如何工作的。

AWK 工作流程可分为三个部分:

读输入文件之前执行的代码段(由BEGIN关键字标识)。
主循环执行输入文件的代码段。
读输入文件之后的代码段(由END关键字标识)。
命令结构:

awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
下面的流程图描述出了 AWK 的工作流程:



1、通过关键字 BEGIN 执行 BEGIN 块的内容,即 BEGIN 后花括号 {} 的内容。
2、完成 BEGIN 块的执行,开始执行body块。
3、读入有 \n 换行符分割的记录。
4、将记录按指定的域分隔符划分域,填充域,$0 则表示所有域(即一行内容),$1 表示第一个域,$n 表示第 n 个域。
5、依次执行各 BODY 块,pattern 部分匹配该行内容成功后,才会执行 awk-commands 的内容。
6、循环读取并执行各行直到文件结束,完成body块执行。
7、开始 END 块执行,END 块可以输出最终结果。
开始块(BEGIN)
开始块的语法格式如下:

BEGIN {awk-commands}
开始块就是在程序启动的时候执行的代码部分,并且它在整个过程中只执行一次。

一般情况下,我们可以在开始块中初始化一些变量。

BEGIN 是 AWK 的关键字,因此它必须是大写的。

注意:开始块部分是可选的,你的程序可以没有开始块部分。

主体块(BODY)
主体部分的语法格式如下:

/pattern/ {awk-commands}
对于每一个输入的行都会执行一次主体部分的命令。

默认情况下,对于输入的每一行,AWK 都会执行命令。但是,我们可以将其限定在指定的模式中。

注意:在主体块部分没有关键字存在。

结束块(END)
结束块的语法格式如下:

END {awk-commands}
结束块是在程序结束时执行的代码。 END 也是 AWK 的关键字,它也必须大写。 与开始块相似,结束块也是可选的。

《awk工作原理》https://www.runoob.com/w3cnote/awk-work-principle.html
--------------------------------------------------------------------
关于awk内建变量个人见解,简单易懂

解释一下变量:

变量:分为内置变量和自定义变量;输入分隔符FS和输出分隔符OFS都属于内置变量。

内置变量就是awk预定义好的、内置在awk内部的变量,而自定义变量就是用户定义的变量。

FS(Field Separator):输入字段分隔符, 默认为空白字符
OFS(Out of Field Separator):输出字段分隔符, 默认为空白字符
RS(Record Separator):输入记录分隔符(输入换行符), 指定输入时的换行符
ORS(Output Record Separate):输出记录分隔符(输出换行符),输出时用指定符号代替换行符
NF(Number for Field):当前行的字段的个数(即当前行被分割成了几列)
NR(Number of Record):行号,当前处理的文本行的行号。
FNR:各文件分别计数的行号
ARGC:命令行参数的个数
ARGV:数组,保存的是命令行所给定的各参数
自定义变量的方法

方法一:-v varname=value ,变量名区分字符大小写。
方法二:在program中直接定义。

https://www.runoob.com/linux/linux-comm-awk.html
分享到:
评论

相关推荐

    shell awk脚本总结.txt

    ### Shell Awk脚本知识点总结 #### 一、Shell与Awk在文本处理中的应用 在日常工作中,尤其是在技术支持领域,经常会遇到需要处理文本文件的情况。无论是哪种类型的数据库,最终都可以将其导出为文本格式,这为我们...

    shell awk实用实例教程

    在IT领域,Shell和Awk是两种非常强大的命令行工具,尤其在文本处理和数据分析方面。本教程将深入探讨这两个工具的结合使用,提供一系列实用的实例,帮助你提升工作效率。 **Shell** 是Unix和Linux操作系统中的命令...

    unix shell awk 修改ini文件的脚本

    ### Unix Shell Awk 修改Ini文件的脚本解析 在Unix环境下,经常需要处理各种配置文件,其中.ini格式的配置文件非常常见。这类文件通常用于存储应用程序的设置信息,包括数据库连接、路径设置等。本文将深入探讨如何...

    UNIX Shell awk sed 实例 精解 (第4版)

    在IT领域,尤其是在Linux系统管理中,Bash Shell、awk和sed是不可或缺的工具,它们在文本处理和自动化任务执行方面发挥着重要作用。本指南将深入解析这些工具的使用实例和精解,帮助读者理解并掌握这些强大的命令行...

    Shell AWK详细功能介绍

    Shell AWK详细功能介绍 如果要格式化报文或从一个大的文本文件中抽取数据包,那么awk可以完成这些任务。它在文本浏览和数据的熟练使用上性能优异。

    shell awk sed

    在IT领域,shell、awk和sed是三种非常重要的命令行工具,它们在Linux和Unix系统中扮演着核心角色。这些工具极大地提高了用户处理文本、自动化任务以及管理系统的效率。接下来,我们将详细介绍这三个工具以及与之相关...

    xml语法合法性 xml 格式验证xml格式检查 shell awk sed实现

    shell awk sed实现xml语法合法性 xml 格式验证xml格式检查 。不需要scheam文件,只验证符号的合法性

    shell awk从入门到精通

    在本文中,我们将深入探讨`shell`中的`awk`命令,一个强大的文本分析工具,特别适用于处理Linux系统中的日志文件和数据处理。`awk`是基于模式扫描和处理的,它允许用户通过指定规则来对输入进行操作。下面我们将详细...

    shell、awk编程教材

    SHELL编程是Unix/Linux操作系统环境...总的来说,SHELL和AWK都是Unix/Linux环境中非常实用的工具,它们结合使用可以实现高效的数据处理和任务自动化。通过学习和掌握这两门技术,用户可以更好地管理和优化自己的系统。

    linux shell awk 编程

    awk作为sehll脚本开发的三大利器之一,该文档对awk语法做了详细的介绍病附带示例,唯一不足之处在于没有形成规范的doc文档

    linux_shell_awk

    ### Linux Shell Awk知识点详解 #### 一、Awk简介 **Awk** 是一种功能强大的文本处理工具,被广泛应用于Linux和Unix环境下的数据处理和脚本编程中。其名称来源于三位创始人Alfred Aho、Peter Weinberger 和 Brian ...

    Shell脚本之awk篇

    Shell脚本之awk篇主要介绍了awk工具在Linux/Unix系统下进行文本和数据处理的应用。awk是一种编程语言,特别适合于对文本文件进行分析和处理,它可以读取标准输入、文件或管道中的数据。awk的名称来源于其创始人...

    Unix基础、AWK、SHELL

    本压缩包文件包含的“Unix基础、AWK、SHELL”主题,涵盖了Unix操作系统的入门知识、AWK编程语言以及Shell脚本编程。以下是这些知识点的详细讲解: 1. **Unix基础** - **目录结构**:Unix采用层次化的目录结构,根...

    awk命令详解大全

    - **将shell命令的执行结果送给awk处理**:通过管道将shell命令的输出传递给awk进行进一步处理。 - **shellscript程序读awk的执行结果**:awk的输出可以被shell脚本捕获并使用。 - **在awk中执行shell命令行**:使用...

    linux shell awk获得外部变量(变量传值)简介

    现在很多基于shell 日志分析工具都可以用它完成。设计简单,速度表现很好。 涉及到以上六个方面内容,我会在以后文章中加以介绍。 这次主要说下,怎么样把外部变量传入到awk执行语句中。 一、基础: awk [ -F re] ...

    shell编程,sed,awk,grep等教程整理

    本文将深入探讨shell编程,以及与之紧密相关的sed、awk和grep命令,这些都是Linux系统中进行文本处理和数据操作的重要工具。 首先,让我们了解什么是Shell编程。Shell是操作系统提供的一个接口,允许用户与系统内核...

    bash&vim&awk

    bash shell awk vim bash shell awk vim bash shell awk vim bash shell awk vim

    awk&sed 详解

    awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell

Global site tag (gtag.js) - Google Analytics