Go to the first, previous, next, last section, table of contents.

定数式

最も簡単なタイプの式は定数で、これは常に同じ値を持ちます。定数には、数値定数、文字列定数、正規表現定数の3つのタイプがあります。

数値定数は数を表します。この数は整数、小数、または、科学的表記法(指数表記法)の数です。すべての数値は、awkの内部では倍精度浮動小数点で表現されます。数値定数をいくつか次に示します。これらはすべて同じ値を持っています。

105
1.05e+2
1050e-1

文字列定数は二重引用符で囲まれた文字のシーケンスで構成されます。たとえば、

"parrot"

これは、内容が`parrot'である文字列を表します。gawkでは文字列の長さに制限がありません。また、ASCII NULを含む可能なすべての8ビットのASCII文字を含めることができます。他のawk処理系では、含めることができない文字コードもあります。

そのままでは文字列定数に含めることができない文字もあります。そのような文字は、バックスラッシュ(`\')で始まる文字シーケンス(エスケープシーケンス)で表現します。

エスケープシーケンスの用途の1つは、文字列定数に二重引用符文字を含めることです。二重引用符だけでは、文字列の終りを意味するので、文字列の一部として1つの二重引用符文字を表現するには`\"'を使わなければなりません。バックスラッシュそれ自身も、普通には含めることのできないもう1つの文字です。バックスラッシュを文字列に含めるには、`\\'と書いてください。したがって、内容が2文字の文字列`"\'`"\"\\"'と書かなければなりません。

バックスラッシュのもう1つの用途は、ニューラインのような非印字文字を表現することです。非印字文字のほとんどは、直接、文字列定数中に書くことができますが、見にくくなってしまいます。

awkで使われるすべてのエスケープシーケンスを以下に示します。

\\
バックスラッシュそのもの、`\'
\a
"警告"文字、control-g、ASCIIコード7。
\b
バックスペース、control-h、ASCIIコード8。
\f
フォームフィード、control-l、ASCIIコード12。
\n
ニューライン、control-j、ASCIIコード10。
\r
キャリッジリターン、control-m、ASCIIコード13。
\t
水平タブ、control-i、ASCIIコード9。
\v
垂直タブ、control-k、ASCIIコード11。
\nnn
8進値nnnnnnは0〜7までの0〜3桁の数字です。たとえば、ASCII ESC(エスケープ)文字のコードは`\033'です。
`\xhh...
16進値hhhhは16進数字(`0'`9'および、`A'`F'または`a'`f')です。ANSI Cの同じ制御構造と同様、エスケープシーケンスは最初の非16進数字が現れるまで続きます。しかし、3桁以上の16進数字を使った場合の結果は定義されていません。

定数正規表現は、/^beginning and end$/のようなスラッシュで囲まれた正規表現の記述です。awkプログラムで使われるほとんどの正規表現は定数ですが、演算子`~'`!~'は、計算型正規表現または"動的"正規表現も照合できます(see section 正規表現の使い方)。

定数正規表現は演算子`~'`!~'といっしょに使った場合だけ有用です。定数正規表現を変数に代入したり、表示することはできません。通常の意味では、定数正規表現は式ではありません。


Go to the first, previous, next, last section, table of contents.