“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 命令的真正威力。