nawk [-F re] -f program-file [file-list]
nawk [-F re] program [file-list]
-F re : 入力区切り文字を正規表現 re とします
-f program-file : program-file で指定されたファイルを nawk に対するプ
ログラムとして実行します
file-list : nawk が対象とするファイルのリスト
program : nawk の命令からなるプログラム(文字列.「 ' 」で囲
む必要があります)
nawk のプログラムはパターンとそれに対応する動作が書かれた以下の様な行
で成り立っています.
パターン {動作}
1)パターン
パターンとしては,正規表現をスラッシュ( / )で囲んだものが使用さ
れます.この場合,入力された行の中に適合する文字列が存在すれば,
その行に対して指定された動作が実行されます.また,特定のフィール
ドやプログラムで使用している変数と,正規表現との関係を調べる関係
演算子を使用できます.関係演算しとしては以下のものを使用できます.
~,<,<=,==,!=,>=,>
なお,それらを論理演算子 ( ||, && ) で結合することも可能です.入力処理
開始時と終了時の処理を記述するために,BEGIN と END という特別なパタ
ーンが用意されています.
2)動作
パターンの適合が起こった時に行われる動作を記述します.この処理を
記述するために,以下の様な nawk 独自の組み込み変数や関数を使用でき
ます.
変数 NR : 現在処理しているレコード(行)番号
$0 : 現在処理しているレコード全体
NF : レコードに含まれているフィールドの数
$1~#n : 各フィールドの内容
FS : 入力フィールドの区切り記号(通常,ブランク)
OFS : 出力フィールドの区切り記号(通常,ブランク)
RS : 入力レコードの区切り記号(通常,改行)
ORS : 出力レコードの区切り記号(通常,改行)
FILENAME : ファイル名
ARGC : コマンド行の引き数の数
ARGV : コマンド行の引き数配列
関数 cos(expr) : 余弦
exp(expr) : 指数関数
getline : 次の入力行を読み,$0 にセットします
getline x : 次の入力行を変数 x に読み込みます
index(s1,s2) : s1 の中の s2 の位置(存在しなければ 0 )
int(expr) : 整数部(切り捨て)
length(s) : 文字列の長さ
log(expr) : 自然対数
sin(expr) : 正弦
split(s,a,c) : s を文字 c によって,a[1]...a[n] に分割し
n を返す
sprintf(fmt,...) : fmt に従って ... をフォーマットする
substr(s,m,n) : s の m 番目から n 文字文取り出す
さらに,以下の様な制御文も使用できます(複数 statement を使用する
時は,「 { 」と「 } 」を使用).
if (condition)
statement1
else
statement2
for (expresion1; condition; expresion2)
statement
while (condition)
statement