
- AWK 教程
- AWK - 首頁
- AWK - 概述
- AWK - 環境
- AWK - 工作流程
- AWK - 基本語法
- AWK - 基本示例
- AWK - 內建變數
- AWK - 運算子
- AWK - 正則表示式
- AWK - 陣列
- AWK - 控制流
- AWK - 迴圈
- AWK - 內建函式
- AWK - 使用者自定義函式
- AWK - 輸出重定向
- AWK - 美化輸出
- AWK 有用資源
- AWK - 快速指南
- AWK - 有用資源
- AWK - 討論
AWK - 工作流程
要成為一名專業的 AWK 程式設計師,你需要了解其內部機制。AWK遵循一個簡單的流程:讀取、執行和重複。下圖描述了 AWK 的工作流程:

讀取
AWK 從輸入流(檔案、管道或標準輸入)讀取一行並將其儲存在記憶體中。
執行
所有 AWK 命令都按順序應用於輸入。預設情況下,AWK 對每一行執行命令。我們可以透過提供模式來限制這一點。
重複
此過程重複,直到檔案到達末尾。
程式結構
現在讓我們瞭解 AWK 的程式結構。
BEGIN 塊
BEGIN 塊的語法如下:
語法
BEGIN {awk-commands}
BEGIN 塊在程式啟動時執行。它只執行一次。這是初始化變數的好地方。BEGIN 是 AWK 關鍵字,因此必須大寫。請注意,此塊是可選的。
主體塊
主體塊的語法如下:
語法
/pattern/ {awk-commands}
主體塊將 AWK 命令應用於每一行輸入。預設情況下,AWK 對每一行執行命令。我們可以透過提供模式來限制這一點。請注意,主體塊沒有關鍵字。
END 塊
END 塊的語法如下:
語法
END {awk-commands}
END 塊在程式結束時執行。END 是 AWK 關鍵字,因此必須大寫。請注意,此塊是可選的。
讓我們建立一個名為 marks.txt 的檔案,其中包含學生的序號、姓名、科目名稱和獲得的分數。
1) Amit Physics 80 2) Rahul Maths 90 3) Shyam Biology 87 4) Kedar English 85 5) Hari History 89
現在讓我們使用 AWK 指令碼顯示帶有標題的檔案內容。
示例
[jerry]$ awk 'BEGIN{printf "Sr No\tName\tSub\tMarks\n"} {print}' marks.txt
執行此程式碼時,將產生以下結果:
輸出
Sr No Name Sub Marks 1) Amit Physics 80 2) Rahul Maths 90 3) Shyam Biology 87 4) Kedar English 85 5) Hari History 89
一開始,AWK 從 BEGIN 塊列印標題。然後在主體塊中,它從檔案中讀取一行並執行 AWK 的 print 命令,該命令只是將內容列印到標準輸出流。此過程重複,直到檔案到達末尾。
廣告