組み込み変数
- ARGC コマンド行にある引数の数
- ARGV コマンド行引数の配列 (ARGV[0..ARGC-1])
- FILENAME 現在の入力ファイル名
- FNR 現在のファイルの入力レコード数
- FS 入力欄区切り子(既定値は空白)
- NF 現在の入力レコードの欄数
- NR 起動後すべての入力レコード数
- OFMT 数の入出力書式(既定値は"%.6g")
- OFS 出力欄区切り子 (既定値は空白)
- ORS 出力レコード区切り子 (既定値は改行)
- RLENGTH matchのなかで正規表現と適合した文字列の長さ
- RS 入力レコード区切り子 (既定値は改行)
- RSTART matchによって適合した文字列の開始位置
- SUBSEP [i,j,...]の形の配列の添字に使う区切り子(既定値は"\034")
ARGCとARGVは、起動プログラムの名前(ふつうはawk)を含んでいるが、プログラム引数やオプションは含んでいない。RESTARTはmatchが返す値でもある。
現在の入力レコードは、$0と名付けられている。また、現在の入力レコードの欄は、$1,$2,...,$NFとそれぞれ名付けられている。
組み込み文字列関数
以下の文字列関数において、sとtは文字列を、rは正規表現を、またi
とnは整数を表している。
subおよびgsubのなかの置換文字列sのなかの&は、適合文字列に置き換えられる。また、\&でアンパサンドそのものを生成する。
- gsub(r,s,t) tの部分文字列でrに適合するものすべてをsで置換する。置換数を返す;tが省略された場合$0が使われる
- index(s,t) sのなかのtの位置を、またtを含まない時は0を返す
- length(s) sの長さを返す
- match(s,r) sがrに適合する位置を、また適合しない時は0を返す;RESTARTとRLENGTHをセットする
- split(s,a,fs) fsを区切り子としてsを配列aに分解し、欄数を返す;fsが省略された時は、かわりにFSが使われる
- sprintf(書式,式の並び) 書式で整えた式の並びを返す
- sub(r,s,t) 最初に適合した部分文字列しか置換しない点を除けばgsubと同じ
- substr(s,i,n) sのi番目から始まるn文字の部分文字列を返す;nが省略された時は、sのi番目から始まる接頭辞を返す
組み込み算術関数
- atan2(y,x) ーπ〜πの間のラジアンで表したy/xの逆正接
- cos(x) 余弦(角度の単位はラジアン)
- exp(x) 指数関数
- int(x) 小数点以下を切り捨てた整数値
- log{x} 自然対数
- rand() 疑似乱数値 r, 0=sin(x) 正弦(角度の単位はラジアン)
- sqrt(x) 平方根
- srand(x) 乱数生成のための新しい種をセットする;xが省略された時は、その日の時刻を使う
式演算子 (優先度の低い順)
- = += -+ *= /+ %= ^= 代入
- ?: 条件式
- || 論理和
- && 論理積
- in 配列要素
- ~ !~ 正規表現適合、非適合
- < <= > >= != == 比較
- 文字連接(明示的な演算子はない)
- + - 和、差
- * / % 積、商、剰余
- + - ! 単項和、単項差、論理否定
- ^ 累乗
- ++ -- インクリメント、デクリメント(前置き、及び後置き)
- $ 欄
代入、?:、それに^は右結合的であるが、それ以外のすべての演算子は左結合的である。任意の式は、括弧で括っても良い。