简介

简介

AWK 是一门编程语言

开始

假设您有一个名称为 emp.data 文件,里面存储的内容包含姓名、每小时的薪资、工作的小时,如下所示:

Beth  4.00 0
Dan   3.75 0
Kathy 4.00 10
Mark  5.00 20
Mary  5.50 22
Susie 4.25 18

现在你想要打印工作超过 0 小时的员工的姓名和薪资,对于 AWK 而言,这相当简单:

awk `$3 > 0 { print $1, $2 * $3 }` emp.data

你会得到如下输出:

Kathy 40
Mark  100
Mary  121
Susie 76.5

位于引号中的内容就是 AWK 的完整代码。$3 > 0,会匹配文件的每一行,看这每一行的第 3 列是否大于 0。{ print $1, $2 * $3 } 打印第一列,以及第二列和第三列的乘积。

如果你想要打印出工作小时数是 0 的员工姓名:

awk `$3 == 0 { print $1 }` emp.data

AWK 程序结构

pattern { action }
pattern { action }
...

程序中 pattern 会对文件的每一行进行测试,测试为 true,才会对这一行执行后面的 action

运行 AWK

awk `program` input_file

如果 AWK 代码太长,假设你将其代码存储到了 progfile 文件中,那么可以这样运行:

awk -f progfile input_file