51. awk 命令语法
基础 Awk 命令语法:
awk -Fs '/pattern/ {action}' input-file
(or)
awk -Fs '{action}' intput-file
在上面的语法中:
-F
是字段分隔符。 如果不指定,它将使用空格/pattern/
和{action}
应括在单引号内('
)。/pattern/
是可选的。 如果您不提供它,awk 将处理输入文件中的所有记录。 如果指定pattern
,它将仅处理输入文件中与给定pattern
匹配的那些记录。{action}
是 awk 编程命令,可以是一个或多个 awk 命令。 整个操作块(包括所有 awk 命令)应该在{
和}
之间闭合。intput-file
需要被处理的输入文件
简单例子
以下是一个非常简单的示例,演示了 awk 语法:
$ awk -F: '/mail/ {print $1}' /etc/passwd
mail
mailnull
在上面的例子中:
-F:
这表示输入文件中的字段分隔符是冒号:
,即字段之间用冒号分隔。 请注意,您还可以将字段分隔符括在双引号内。-F":"
也有效。/mail/
是模式。 awk 将仅处理包含关键字mail
的记录。{print $1}
是动作。 该操作块仅包含一个 awk 命令,该命令打印与模式mail
匹配记录的第一个字段/etc/passwd
这是输入文件。
将 Awk 命令集成到单独的文件中
当您必须处理大量 awk 命令时,您可以在 awk 脚本文件
中指定/pattern/ {action}
并调用它,如下所示。
awk -Fs -f myscript.awk input-file
myscript.awk
可以有任何文件扩展名(或没有扩展名)。 但是将扩展名保留为 .awk
更容易理解和维护。
您还可以在脚本文件本身中指定字段分隔符(更多信息请参见后面),然后调用它,如下所示:
awk -f myscript.awk input-file