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命令中的內置變量,分別表示文件中的字段總數和記錄總數。另外,如果我跳過此命令中的逗號,它會在沒有空格的情況下打印到終端,這會使輸出非常混亂。

結論是

本教程旨在向您展示如何在 Linux 上使用 AWK 命令。在介紹了這個強大的工具之後,我解釋了它最重要的特性,然後給出了這個命令的一些示例。通過這些示例,您可以了解這條 Linux 命令的真正威力。