模式和動作介紹
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