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 脚本文件 中指定/pattern/ {action}并调用它,如下所示。

awk -Fs -f myscript.awk input-file 

注意myscript.awk 可以有任何文件扩展名(或没有扩展名)。 但是将扩展名保留为 .awk 更容易理解和维护。

您还可以在脚本文件本身中指定字段分隔符(更多信息请参见后面),然后调用它,如下所示:

awk -f myscript.awk input-file