プログラムの構成

寄稿:東條遼平

パターンとアクション

Awkはpattern{action}という構成になっています.これは行単位で適用され,patternが真であればactionが実行されます.

$ awk 'NR<5{print}' sindata
0.000000
0.002830
0.005660
0.008490

このプログラムはNRが5より小さいときにその行を全て出力します.ここでNRとは今まで読み込んだ行の数ですので4行だけ出力されています. printは出力する変数を指定することもできるのですが,何も指定しないとその1行が全て出力されます.

このpattern{action}という構成はどちらか片方を省略することもできます. patternを省略すれば全ての行に対しactionが行われ, actionを省略すればpatternが真である行に対して{print}が行われます.

$awk '{print $1*3}' sindata

これは全ての行に対し行の1項目の値を3倍して出力しています. $1というのが第一項目の値が入っている.同じ様に$2は第二項目が,$3には第三項目の値が入っている. $0とするとこれはその行全てが入っており,{print}と{print $0}は同じ意味です.

$ awk 'NR<5' sindata

これは最初のプログラムと同じく最初の4行が出力されます.

Valid XHTML 1.1! home > コンピュータ > プログラミング >
リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.3.29HTML convert time to 0.006 sec.