awk

Variables

awk的变量应该以字母字符开始;字符的其他部分可以是数字或字母,或下划线。关键字不能被用作一个awk变量名。

不像其他的编程语言,你不需要声明一个变量再使用它,如果你想初始化一个awk变量,可以在BEGIN部分更好地做到这一点,这将执行一次。

在awk里没有数据类型。一个awk变量是否是数字型,还是字符串型依赖于在其中变量用的上下文。

employee-sal.txt例子文件

employee-sal.txt是一个逗号定界符文件包含5个雇员记录在下面格式里:

employee-number,employee-name,employee-title,salary

创建文件:

$ vi employee-sal.txt
101,John Doe,CEO,10000
102,Jason Smith,IT Manager,5000
103,Raj Reddy,Sysadmin,4500
104,Anand Ram,Developer,4500
105,Jane Miller,Sales Manager,3000

下面的列子显示了如何创建和使用拥有的变量在awk脚本里。在这个例子里, "total" 是用户定义的awk变量用于计算出公司里面所有雇员工资总额。

$ cat total-company-salary.awk
BEGIN {
    FS=",";
    total=0;
    }
    {
    print $2 "'s salary is:" $4;
    total=total+$4
    }
    END {
    print "---\nTotal company salary=$"total;
    }

$ awk -f total-company-salary.awk employee-sal.txt
John Doe's salary is:10000
Jason Smith's salary is:5000
Raj Reddy's salary is:4500
Anand Ram's salary is:4500
Jane Miller's salary is:3000
---
Total company salary=$27000