awk的命令行方式的几本结构是:
awk [program|-f programfile] [flags/variables] [files]
第一个参数可以是单个awk命令、多个用分号隔开的awk命令或者包含一系列awk命令的文件。如果指定的是一个命令文件,就需要使用“-f”标志。
第二个命令行参数是标志或变量申明。如果你使用–F re,那么正则表达式(regular expression)re就用作字段间隔器,而不是默认的空格(white space)。你可以通过在命令行中使用“variable =VALUE”来初始化变量。
Awk的命令行有一个简单的结构,包括:
如果只给定选择器,默认操作就是打印文件。如果只给定一个任务,那么该任务执行于文件中的每一行。当选择器和任务都被指定指定,那么就在选择器选定的行中执行该任务。一个任务可能有多个由分号隔开的语句。
可以用零个、一个或两个选择标准(模式匹配条件)来选择某一行。如果使用多标准,用逗号来分隔它们。选择器可以是正则表达式或者布尔表达式(逻辑表达式,即结果只是“真”或“假”的表达式)。我们早先已经提到,如果没有指定选择器,任务执行的范围将是输入文件的所有行。如果给定一个条件,任务将在满足该条件的行上执行。如果指定两个条件,任务将从满足第一个条件的行开始执行直到满足第二个条件的行结束,即执行范围为这两行之间。输入数据集的每一行都会被检测是否符合选择器,除非用next语句在检测之前执行了动作。
执行任务以BEGIN块为起始。BEGIN是awk的保留字,并对大小写敏感。然后,分配命令行变量的值。接着就是读入输入数据集并分配内建变量的值。每一个命令都有自己的选择器;当值为“真”时,执行该命令。最后运行END块。