跳轉到內容

Awk入門/Awk概述

來自Wikibooks,開放世界中的開放書籍

Awk文字處理語言可用於以下任務:

  • 從文字檔案中統計資訊並根據結果建立報表。
  • 向“vi”等文字編輯器新增其他功能。
  • 將檔案從一種格式轉換為另一種格式。
  • 建立小型資料庫。
  • 對數值資料檔案執行數學運算。

Awk有兩個方面:它是一個用於執行簡單文字處理任務的實用程式,也是一個用於執行復雜文字處理任務的程式語言。

然而,這兩個方面實際上是相同的。Awk使用相同的機制來處理任何文字處理任務,但這些機制足夠靈活,允許在命令列上輸入有用的Awk程式,或實現包含數十行Awk語句的複雜程式。

Awk語句構成一門程式語言。事實上,Awk對於簡單、快速和簡單的計算程式設計很有用。任何能夠編寫BASIC程式的人都可以使用Awk,儘管Awk的語法與BASIC不同。任何能夠編寫C程式的人都可以輕鬆使用Awk,而那些希望學習C的人可能會發現Awk是一個有用的墊腳石,需要注意的是,除了它們之間存在的許多相似之處外,Awk和C之間存在顯著差異。

但是,Awk也有一些不擅長的方面。它並不真正適合處理極其龐大、複雜的任務。它也是一種“解釋型”語言——也就是說,Awk程式不能獨立執行,必須由Awk實用程式本身執行。這意味著它相對較慢,儘管就解釋型語言而言它效率很高,並且該程式只能在安裝了Awk的系統上使用。有一些翻譯器可以將Awk程式轉換為C程式碼以進行編譯為獨立程式,但此類翻譯器需要單獨購買。

在繼續之前,還有一點需要說明:“Awk”這個名稱的含義是什麼?Awk實際上代表其作者的姓名:“Aho、Weinberger和Kernighan”。Kernighan後來指出:“用作者的名字來命名一門語言……表明想象力的貧乏。” [1] 這個名字讓人聯想到一種名為“auk”的海鳥,因此關於Awk的書籍封面上經常會出現auk的圖片。

參考文獻

[編輯 | 編輯原始碼]
  1. Brian W. Kernighan,Rob Pike (1984). 《UNIX程式設計環境》. Prentice-Hall. ISBN 013937681X.
華夏公益教科書