模式和動作介紹

awk 由模式和動作組成,用花括號括起來,如果模式匹配則採用。最基本的模式是空模式,它匹配任何記錄。最基本的動作是空動作,相當於 { print },而 { print } 相當於 { print $0 }。如果模式和動作都是空的,那麼 awk 將什麼都不做。

以下程式將簡單地回顯其輸入,例如:

awk '{ print }' /etc/passwd

由於 { print } 是預設操作,並且由於真值與任何記錄匹配,因此該程式可以重寫為:

awk '1' /etc/passwd

最常見的模式型別可能是用斜槓括起來的正規表示式。以下程式將列印包含至少兩個後續出現的字母 o 的所有記錄,例如:

awk '/oo+/ { print }' /etc/passwd

但是,你可以使用任意表示式作為模式。以下程式列印組 0(欄位 4)中使用者的名稱(欄位 1),例如:

awk -F: '$4 == 0 { print $1 }' /etc/passwd

你也可以匹配正規表示式,而不是完全匹配。以下程式列印組中所有使用者的名稱,其組 ID 中至少有一個零:

awk -F: '$4 ~ /0/ { print $1 }' /etc/passwd