摘要: 这部分的内容许多在以往的笔记中有涉猎,因此大多数不会详述。 内置(built-in)和预定义(predefined)虽然名字不同,不过含义是等价的,官方文档中也同时使用到这两个英文词汇。 选项 -e:指定awk代码。一般代码可以直接写在CLI或者使用-f来指定代码文件,不过这两种只能二选一。如果已经 阅读全文
posted @ 2021-02-03 14:28 阿龙弟弟 阅读(955) 评论(0) 推荐(0) 编辑
摘要: 前言 关于函数的基本概念,在学习bash的函数的时候已经大致讲解过了,加上本人大学时期也学习过C语言(虽然都忘记了),因此这里就不再对函数做过多冗余的介绍了。 awk大致将函数分成了自定义函数和内置函数。不过其本质上没有区别,自己写的函数就叫做自定义函数,而官方写好的嵌入在awk本身的我们直接拿来用 阅读全文
posted @ 2021-02-02 16:45 阿龙弟弟 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 简介 ARGC和ARGV都是awk的预定义变量。 ARGC存储了awk的CLI参数数量(Argument Count);ARGV(Argument Value)是一个数组变量,虽然是关联数组不过其下标是从0开始的数值(当然,内部识别为字符串),存储了这次awk的CLI执行中的每个参数。 # awk 阅读全文
posted @ 2021-01-27 00:59 阿龙弟弟 阅读(970) 评论(0) 推荐(0) 编辑
摘要: 数组 在bash中我们已经见识过了数组。awk的数组和bash的数组的主要区别在于其支持的是关联数组,而bash支持的是数值索引数组。 假设存在这样一个数组。 arr=["zhangsan","lisi","wangwu"] 数值索引的下标是从0开始的数值。 arr[0] ==> "zhangsan 阅读全文
posted @ 2021-01-21 21:51 阿龙弟弟 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 语法 变量 我觉得awk应该算是属于动态编程语言。其变量不需要事先声明才可以使用。我们想要使用的时候随时引用即可,不需要事先声明其数据类型。 awk的变量具有三种状态。 未声明状态(untyped)。没有引用也没有赋值。 未赋值状态(unassigned)。引用但还未赋值。 已赋值状态。 引用未赋值 阅读全文
posted @ 2021-01-20 22:40 阿龙弟弟 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 输出操作 awk可以通过print或者printf将数据输出到标准输出或者重定向到文件中。 print print我们已经使用过很多次了。其实它本质是一个输出函数,即有小括号。 print (elem1,elem2,elem3...) print elem1,elem2,elem3... 输出的每一 阅读全文
posted @ 2021-01-19 13:10 阿龙弟弟 阅读(1194) 评论(0) 推荐(0) 编辑
摘要: getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据。我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个非待处理文件的数据,或者从某个读取某个shell命令结果数据。 getline有返回值: 1:正确读取到了数据。 0:读取数据遇到EOF。 阅读全文
posted @ 2021-01-19 13:07 阿龙弟弟 阅读(3465) 评论(0) 推荐(0) 编辑
摘要: 工作流程 可以参考man手册。 man --pager='less -p ^"AWK PROGRAM EXECUTION"' awk 示例 awk -v a=1 -v b=2 'BEGIN{...}{...main...}END{...}' x=3 a.txt y=4 b.txt z=5 解析CLI 阅读全文
posted @ 2021-01-19 13:03 阿龙弟弟 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 读取文件 读取“每行”数据 博客的开头我们说过,默认情况下awk读取文件的每行数据并将其存入$0变量当中。其实,awk在读取数据之前会根据其内部的预定义变量RS的值来分隔每条记录(record)。RS的默认值是“\n”,即换行符,因此也就会有我们刚才所说的默认情况。 所以,awk在读取文件时,会根据 阅读全文
posted @ 2021-01-19 13:00 阿龙弟弟 阅读(1868) 评论(0) 推荐(0) 编辑
摘要: 命令行和语法结构 awk [ options ] [ -- ] program-text file ... options即选项;program-text即awk代码;file ...即待处理的读入数据,可以是文件也可以是标准输入,只要是数据来源即可。 这里比较陌生的是[ -- ],中括号表示可以省 阅读全文
posted @ 2021-01-19 12:56 阿龙弟弟 阅读(337) 评论(0) 推荐(0) 编辑
回到顶部