パターンとは     Last modified: May 15, 2002

 パターンは条件を表す。すなわち,入力した行が特定の条件を満たすときにのみ,対応するアクションが実行される。

 最もよく使われるパターンは,「空」のパターンである。空のパターンは常に成り立つので,入力された行に対して常にアクションが実行される。例としては,

{
	print $0
}
のようなものが挙げられる。この指示は,「入力された行を全て print する」ことを意味する。

条件は様々なものがあるが,

NF == 5 {
	print $0
}
のように,「入力された行にちょうど 5 つのフィールドがある(NF == 5)とか,
length($0) > 80 {
	print $0
}
のように,「入力された行の長さ(文字数)が 80 より長い(length($0) > 80)とか,
$0 ~ /string/ {
	print $0
}
のように,「入力された行に string という文字列が含まれる」($0 ~ /string/)のように指定できる。

 パターンにはその他特別な 2 つのパターンがある。

 一つは BEGIN パターンである。これに対するアクションは,入力ファイルを読む前に 1 度だけ実行される。例えば,

BEGIN {
	print "Hello, world!"
}
というのは完全な AWK スクリプトであり,画面に Hello, world! と表示して,終了する(入力ファイルは読まない)。

 もう一つは END パターンである。これに対するアクションは,(もし入力ファイルがある場合には)入力ファイルを全部読んだ後に一度だけ実行される。例えば,

END {
	print "Good-bye, world!"
}
は,完全な AWK スクリプトであり,画面に Good-bye, world! と表示して,終了する(入力ファイルは読まない)。


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI