📝 Awk教程
18篇技术文档📅  最后修改于: 2020-11-05 03:47:18        🧑  作者: Mango
本教程将向您介绍AWK,它是GNU / Linux上最杰出的文本处理实用程序之一。它非常强大,并使用简单的编程语言。它可以用几行代码解决复杂的文本处理任务。从AWK,其环境和工作流程的概述开始,本教程将继续说明AWK中使用的语法,变量,运算符,数组,循环和函数。它还涵盖诸如输出重定向和漂亮打印之类的主题。本教程对软件开发人员,系统管理员或任何热衷于学习如何在类Unix环境中进行文本处理和数据提取的...
📅  最后修改于: 2020-11-05 03:47:33        🧑  作者: Mango
AWK是一种解释性编程语言。它非常强大,专门为文本处理而设计。它的名字来自作者的姓氏-Alfred Aho,Peter Weinberger和Brian Kernighan。GNU / Linux分发的AWK版本由自由软件基金会(FSF)编写和维护;它通常被称为GNU AWK。AWK的类型以下是AWK的变体-AWK-来自AT&T Laboratory的原始AWK。NAWK-来自AT&T Labor...
📅  最后修改于: 2020-11-05 03:47:55        🧑  作者: Mango
本章介绍如何在GNU / Linux系统上设置AWK环境。使用软件包管理器进行安装通常,大多数GNU / Linux发行版默认都提供AWK。您可以使用哪个命令来检查系统中是否存在该命令。如果您没有AWK,请使用高级软件包工具(APT)软件包管理器将其安装在基于Debian的GNU / Linux上,如下所示-同样,要在基于RPM的GNU / Linux上安装AWK,请使用Yellowdog Upd...
📅  最后修改于: 2020-11-05 03:48:18        🧑  作者: Mango
要成为专业的AWK程序员,您需要了解其内部。 AWK遵循简单的工作流程-读取,执行和重复。下图描述了AWK的工作流程-读AWK从输入流(文件,管道或标准输入)中读取一行并将其存储在内存中。执行所有AWK命令都顺序施加在输入上。默认情况下,AWK在每一行执行命令。我们可以通过提供模式来限制它。重复重复此过程,直到文件结束。程序结构现在让我们了解AWK的程序结构。BEGIN块BEGIN块的语法如下-句...
📅  最后修改于: 2020-11-05 03:48:54        🧑  作者: Mango
AWK易于使用。我们可以直接从命令行提供AWK命令,也可以以包含AWK命令的文本文件的形式提供AWK命令。AWK命令行我们可以在命令行的单引号内指定AWK命令,如下所示-例考虑具有以下内容的文本文件marks.txt-让我们使用AWK显示文件的完整内容,如下所示-例在执行此代码时,您将获得以下结果-输出AWK程序文件我们可以在脚本文件中提供AWK命令,如下所示-首先,创建一个包含AWK命令的文本文...
📅  最后修改于: 2020-11-05 03:49:24        🧑  作者: Mango
本章介绍了几个有用的AWK命令及其适当的示例。考虑一个文本文件marks.txt,该文件具有以下内容:打印列或字段您可以指示AWK从输入字段中仅打印某些列。以下示例演示了这一点-例在执行此代码时,您将获得以下结果-输出在文件marks.txt中,第三列包含主题名称,第四列包含在特定主题中获得的标记。让我们使用AWK打印命令来打印这两列。在上面的示例中,$ 3和$ 4分别代表输入记录的第三和第四字段...
📅  最后修改于: 2020-11-05 03:50:28        🧑  作者: Mango
AWK提供了几个内置变量。它们在编写AWK脚本时起着重要作用。本章演示了内置变量的用法。标准AWK变量标准AWK变量在下面讨论。美国陆军委员会它表示在命令行中提供的参数数量。例在执行此代码时,您将获得以下结果-输出但是,当您仅传递4个参数时,为什么AWK显示5?只需检查以下示例即可清除您的疑问。弧菌病毒它是一个存储命令行参数的数组。数组的有效索引范围是0到ARGC-1。例在执行此代码时,您将获得以...
📅  最后修改于: 2020-11-05 03:50:44        🧑  作者: Mango
像其他编程语言一样,AWK也提供了大量的运算符。本章通过适当的示例说明AWK运算符。S.No.Operators & Description1Arithmetic OperatorsAWK supports the following arithmetic operators.2Increment and Decrement OperatorsAWK supports the following ...
📅  最后修改于: 2020-11-05 03:51:14        🧑  作者: Mango
AWK在处理正则表达式方面非常强大且高效。使用简单的正则表达式可以解决许多复杂的任务。任何命令行专家都知道正则表达式的功能。本章介绍标准的正则表达式,并提供适当的示例。点它匹配行尾字符以外的任何单个字符。例如,以下示例匹配鳍,乐趣,风扇等。例执行上述代码后,您将获得以下结果-输出行首它与行首匹配。例如,以下示例打印以模式The开头的所有行。例在执行此代码时,您将获得以下结果-输出行结束它与行尾匹配...
📅  最后修改于: 2020-11-05 03:51:39        🧑  作者: Mango
AWK具有关联数组,最好的事情之一是–索引不必是连续的数字集;您可以使用字符串或数字作为数组索引。另外,也无需事先声明数组的大小-数组可以在运行时扩展/缩小。它的语法如下-句法其中array_name是数组的名称,index是数组的索引,value是分配给数组元素的任何值。创建数组为了获得更多关于数组的见解,让我们创建和访问数组的元素。例在执行此代码时,您将获得以下结果-输出在上面的示例中,我们将...
📅  最后修改于: 2020-11-05 03:52:00        🧑  作者: Mango
与其他编程语言一样,AWK提供条件语句来控制程序的流程。本章以适当的示例说明AWK的控制语句。如果声明它只是测试条件并根据条件执行某些操作。下面给出的是if语句的语法-句法我们还可以使用下面给出的一对花括号来执行多个动作-句法例如,以下示例检查数字是否为偶数-例执行上述代码后,您将获得以下结果-输出否则声明在if-else语法中,我们可以提供条件变为假时要执行的操作的列表。if-else语句的语法...
📅  最后修改于: 2020-11-05 03:52:31        🧑  作者: Mango
本章以适当的示例说明AWK的循环。循环用于以重复的方式执行一组动作。只要循环条件为真,循环就会继续执行。对于循环for循环的语法是-句法最初,for语句执行初始化操作,然后检查条件。如果条件为真,则执行操作,然后执行递增或递减操作。只要条件为真,循环就会继续执行。例如,以下示例使用for循环打印1到5-例在执行此代码时,您将获得以下结果-输出While循环while循环将继续执行操作,直到特定逻辑...
📅  最后修改于: 2020-11-05 03:52:45        🧑  作者: Mango
AWK内置了许多对程序员始终可用的功能。本章将通过适当的示例介绍算术,字符串,时间,位操作以及其他各种功能。S.No.Built in functions & Description1Arithmetic FunctionsAWK has the following built-in arithmetic functions.2String FunctionsAWK has the followi...
📅  最后修改于: 2020-11-05 03:53:03        🧑  作者: Mango
函数是程序的基本构建块。 AWK允许我们定义自己的功能。大型程序可以分为多个功能,每个函数可以独立编写/测试。它提供了代码的可重用性。下面给出的是用户定义函数的一般格式-句法在此语法中,function_name是用户定义函数的名称。函数名称应以字母开头,其余字符可以是数字,字母字符或下划线的任意组合。 AWK的保留字不能用作函数名称。函数可以接受以逗号分隔的多个参数。参数不是强制性的。您也可以创...
📅  最后修改于: 2020-11-05 03:53:35        🧑  作者: Mango
到目前为止,我们在标准输出流上显示了数据。我们还可以将数据重定向到文件。重定向出现在print或printf语句之后。 AWK中的重定向与shell命令中的重定向一样编写,只不过它们是在AWK程序中编写的。本章将通过适当的示例说明重定向。重定向运算符重定向运算符的语法是-句法它将数据写入输出文件。如果输出文件不存在,那么它将创建一个。使用这种类型的重定向时,在将第一个输出写入到输出文件之前,将删除...