AWK
編輯AWK 是一種用于處理和評估任何文本數據的編程語言,例如 還有 CSV 文件。 關聯的解釋器更像是一個編譯器,因為程序文本首先被完全編譯然后執行。 AWK 主要設計為報告生成器,是最早出現在 Unix 版本 3 中的工具之一。 AWK 可以看作是流編輯器 sed 的演變或擴展,共享某些語法元素,例如正則表達式。 然而,與 sed 相比,AWK 中提供了類似 C 的結構(if .. then .. else、各種循環、C 格式......),這允許更簡單的程序結構。 在最小應用程序中,AWK 用于 shell 腳本,例如將文件名放在一起作為過濾器。 使用更詳細的程序,可以編輯、重塑或評估文本文件。 除了通常的字符串函數外,還提供基本的數學函數。
現在幾乎每個類 Unix 系統中都可以找到 AWK 的一個版本,并且通常是預裝的。 類似的程序也可用于幾乎所有其他操作系統。
該語言幾乎只適用于數據類型字符串。 此外,關聯數組(即用字符串索引的數組,也稱為散列)和正則表達式是該語言的基本部分。
AWK 和 sed 腳本的強大、緊湊以及局限性啟發了 Larry Wall 開發 Perl 語言。
程序結構
編輯AWK 程序的典型執行包括對輸入文本執行操作(例如替換)。 為此,逐行閱讀文本并使用選定的分隔符將文本分成多個字段——通常是一系列空格和/或制表符。 然后將 AWK 指令應用于相應的行。
AWK 指令具有以下結構:
條件{語句塊}
判斷讀取的行是否滿足條件(通常是正則表達式)。 如果滿足條件,則執行花括號括起來的語句塊中的代碼。
變量和函數
編輯用戶可以通過引用在語句塊中定義變量,不需要顯式聲明。 變量的范圍是全局的。 一個例外是函數參數,其有效性僅限于定義它們的函數。
函數可以在任何地方定義,第一次使用前不必聲明。 如果涉及標量,則函數參數作為值參數傳遞,否則作為引用參數傳遞。 調用函數時的參數不必與函數定義相對應,多余的參數被視為局部變量,省略的參數提供特殊值未初始化 - 數字零和空字符串的值作為字符串。
各種函數和變量使用相同的命名空間,因此以相同的方式命名它們會導致未定義的行為。
命令
編輯AWK 的語法類似于 C 編程語言,基本命令是對變量的賦值、變量之間的比較和循環或條件命令執行(if-else)。 也有對永久實施和自編程功能的調用。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/371988/