awkのBEGINとEND

1038 ワード

Unixに詳しいかもしれませんが、Unix awkに慣れていないかもしれません.この点もおかしくありません.確かに、優れた機能に比べて、awkはまだ知名度に達していません.
プロセス制御文は、プログラム設計言語に不可欠な部分です.どの良い言語にも、プロセス制御を実行する文があります.Unix awkが提供する完全なプロセス制御文はC言語に似ており、プログラミングに大きな便利さをもたらしています.
BEGINとEND:
Unix awkの2つの特別な式、BEGINとENDは、pattern(前のawk構文を参照)で使用することができ、BEGINとENDを提供する役割は、プログラムに初期状態を与え、プログラムが終了した後にいくつかの掃除を実行することである.
BEGINの後にリストされた操作({}内)は、Unix awkがスキャン入力を開始する前に実行され、ENDの後にリストされた操作は、スキャン完全部の入力の後に実行されます.したがって,通常BEGINを用いて変数とプリセット(初期化)変数を表示し,ENDを用いて最終結果を出力する.
例:累計販売ファイルxsにおける販売金額(販売金額が記録の第3フィールドにあると仮定):$``awk'BEGIN{FS=":";print"統計販売金額";total=0}{print$3;total=total+$3;}END{printf"売上総額:%2 f",total}'sx
 2:      

grep '19/03/12 22:' nohup.out| grep Successfully|awk '{print $9}' | awk -F= '{j=j+$2} END {i=j/1024/1024/1024;print j,i}'846835162645 788.677


( :> shell        ,   shell  Unix awk   Unix awk     ,         )

   ,BEGIN       FS(     )      total,              。 END             。