程式語言不斷地隨者電腦科學的發展在演進,awk可以說是最早的scripting language,衍生自貝爾實驗室,在1977年出現,其為Perl(1987)和Python(1989)的前身,有一陣不太有人使用,但隨者有結構的資料大增,這種古老語言的處理速度,使其再度被使用。
就實用性來說,可以用其來取代cut,其在將資料分成field有非常大的彈性。
基本awk架構
awk ` pattern {action } `
- awk處理邏輯是以行為單位的
- 當pattern存在於line中,執行action
- 將每行中的空白格當作是分隔
- pattern的辨識以最大化為主
特殊變數special variables
在pattern或是action指令中有變數功能,如前述每個space中間即可被當作是一個單位的資訊
- $0 整行
- $1 第一個field(行中由空白格分隔裡,第一組文字)
- $2 第二個field
- …
- NF 第幾個field
- NR 當下的line數
指令operators
- +-*/ 加減乘除
- >< ==, !=比較
- % 取mode
- ~,!~ 有無match到
有用的awk教學資源