awk

Awk Command Syntax

awk基本语法

awk -Fs '/pattern/ {action}' input-file
(or)
awk -Fs '{action}' intput-file

在上面的命法里:

* -F:是字段分隔符,如果你没有指定,它将使用一个空格作为字段定阶符

* /pattern/和{action} 应该被单引号括起来

* /pattern/:是选项,如果你没有提供它,awk将处理输入文件的所有记录。如果你指定了一个pattern,它将处理输入文件里匹配到给定pattern的这些记录。。

* {action}: 这些是awk编程命令,它可以是一个或多个awk命令。整个动作块(包括所有的awk命令在一起)之间应该使用{和}括起来

* input-file:需要处理的输入文件。

下面是一个非常简单的例子说明awk语法:

$ awk -F: '/mail/ {print $1}' /etc/passwd
mail

在上面这个简单的例子里:

* -F:这指定在输入文件里分隔符是冒号:即字段由冒号隔开。请注意,你也可以用双引号将字段分隔符括起来。 ":" 也是有效的。

* /mail/ 这是pattern. awk将处理只包含关键mail的记录。

* {print}-这是action,action块仅包含一条awk命令,就是打印匹配pattern为mail记录的第一个字段。

* /etc/passwd-这是输入文件

awk命令在一个分隔文件里

当你不得不处理大量的awk命令时,你可以指定含有 '/pattern/ {action}'的awk脚本文件并调用它,显示如下:

awk -Fs -f myscript.awk input-file

myscript.awk 可以有任何文件扩展名(或没有扩展名)但是,扩展 名为.awk但是更容易维护。你也可以指定字段分隔符在脚本文件里,显示如下:

awk -f myscript.awk input-file