Awk 有好几个变种:最早的 awk,是 1977 年 AT&T 贝尔实验室所创。它还有一些重构版本,例如 mawk、nawk。在大多数 Linux 发行版中能见到的,是 GNU awk,也叫 gawk。在大多数 Linux 发行版中,awk 和 gawk 都是指向 GNU awk 的软链接。输入 awk,调用的是同一个命令。GNU awk 用户手册中,能看到 awk 和 gawk 的全部历史。
这一系列的第一篇文章 介绍了 awk 命令的基本格式:
$ awk [选项] ‘模式 {动作}’ 输入文件
复制代码awk 是一个命令,后面要接选项 (比如用 -F 来定义字段分隔符)。想让 awk 执行的部分需要写在两个单引号之间,至少在终端中需要这么做。在 awk 命令中,为了进一步强调你想要执行的部分,可以用 -e 选项来突出显示(但这不是必须的):
$ awk -F, -e ‘{print $2;}’ colours.txt
yellow
blue
green
[…]
复制代码记录和字段
awk 将输入数据视为一系列记录,通常是按行分割的。换句话说,awk 将文本中的每一行视作一个记录。每一记录包含多个字段。一个字段由字段分隔符分隔开来,字段是记录的一部分。
默认情况下,awk 将各种空白符,如空格、制表符、换行符等视为分隔符。值得注意的是,在 awk 中,多个空格将被视为一个分隔符。所以下面这行文本有两个字段:
raspberry red
复制代码这行也是:
tuxedo black
复制代码其他分隔符,在程序中不是这么处理的。假设字段分隔符是逗号,如下所示的记录
awk 中的字段、记录和变量
最新推荐文章于 2022-07-28 12:32:10 发布
本文深入介绍了awk命令,包括不同版本的awk,记录和字段的概念,以及如何利用模式和动作进行数据处理。文章展示了如何通过模式匹配显示特定记录,使用NF和NR变量来处理字段数量和记录数,并探讨了printf函数用于格式化输出。此外,还介绍了将awk命令编写成脚本以提高复杂任务的可维护性。
摘要由CSDN通过智能技术生成