AWK 功能和示例

“AWK 是一个非常有用的 Linux 命令,它充当了一个极其通用的脚本工具。 它允许您以终端命令的形式编写迷你脚本,您可以使用这些脚本轻松地在 Linux 中操作文件。 它允许您在可以在提供的文件上执行的命令中定义某些模式。 在本文中,我们将讨论 Linux 中 AWK 命令的一些最重要的特性,然后我们将继续介绍一些使用该命令的示例。”

AWK 命令的特点

Linux 中的 AWK 命令提供了不同的功能。 但是,以下是此 Linux 命令最值得注意的特性:

  • 它可以轻松地逐行扫描文件。
  • 它可以分离出文件的不同字段,因为它在读取文件时将文件拆分为不同的列。
  • 它可以对文件执行不同的操作,例如文本搜索、文本比较等。
  • 它还可以对文件执行算术和逻辑运算。
  • 它可以方便地使用不同的正则表达式。
  • 它还可用于打印有关文件的一些信息,例如其名称和其中包含的数据的详细信息。

AWK 命令示例

下面解释了在 Linux 中使用 AWK 命令的一些示例。 但是,在继续讨论这些示例之前,我们想与您分享我们将在所有这些示例中使用的测试文件。 该文件如下图所示:

示例 # 1:使用 AWK 命令打印文件的单列

在此示例中,我们希望打印上面显示的文本文件的单列。 为此,我们使用了 AWK 命令,如下所示:

$ awk ‘{print $2}’ testfile.txt 

该命令将打印测试文件的第二列,即终端上的英国城市名称,如下图所示:

示例 # 2:使用 AWK 命令打印文件的多列

现在,我们将使用 AWK 命令在终端上同时打印上面显示的文件的多列。 为此,我们将使用 AWK 命令,如下所示:

$ awk ‘{print $2, $3}’ testfile.txt 

该命令将在终端打印测试文件的第二列和第三列,即英国的城市名称及其各自的区号,如下图所示。 但是,如果您在上述命令中跳过列号之间的逗号,那么这些列将被打印出来,中间没有任何空格。

示例 # 3:将 AWK 命令与逻辑运算符一起使用

在此示例中,我们希望将 AWK 命令与 Linux 中的逻辑运算符配对。 我们想定义不同的条件来获得所需的输出。 为此,您可以查看如下所示的命令:

$ awk ‘$1>3 && $3>0000 {print $2}’ testfile.txt 

此命令将仅打印文件第二列中第一列的值大于“3”且第三列的值大于“0000”的条目,如下图所示。 同样的,你也可以使用“||” 使用 AWK 命令定义您选择的任何条件。

示例 # 4:使用 AWK 命令打印文件信息

现在,我们要使用 AWK 命令在终端上打印文件相关信息,例如文件名、总行数和总列数等。为此,我们使用了如下所示的 AWK 命令:

$ awk ‘END{print “The name of the file is “, FILENAME, “It has “, NF, “columns and “, NR, “rows”}’ testfile.txt 

此命令将在终端上打印文件的名称以及它包含的总行数和列数,如下图所示。 “NF”和“NR”是 AWK 命令的内置变量,分别表示文件中存在的字段总数和记录总数。 同样,如果您将跳过此命令中的逗号,那么您的输出将看起来非常混乱,因为它将在终端上打印而没有任何空格。

结论

本教程旨在向您解释 AWK 命令在 Linux 中的用法。 在向您介绍了这个强大的工具之后,我们讨论了它的一些最重要的功能,然后我们与您分享了这个命令的一些示例。 通过这些示例,您将能够意识到这个 Linux 命令的真正力量。