複数の awk スクリプトの実行順序2009年12月26日 10時16分59秒

awk に複数のスクリプトを渡す事が出来る。その性質を利用して、ライブラリ群を作る事も出来る。

そこで一つ気を付けないといけないのが実行順序。


sun% cat begin.awk 
BEGIN{
  print "BEGIN"
}
sun% cat begin2.awk 
BEGIN{
  print "BEGIN2"
}

二つのスクリプトは渡した順に実行される。言わば、実行する前に cat 等で一つのファイルにしたような感じだ。

sun% nawk -f begin.awk -f begin2.awk 
BEGIN
BEGIN2
sun% nawk -f begin2.awk -f begin.awk 
BEGIN2
BEGIN

そのため、メインにあたる部位が複数のスクリプトに渡ると制御が難しくなるので、注意が必要だ。

関数を作り、実行時にどのライブラリを指定するかを変えて、同じメインプログラムに違う動作をさせることも出来る。しかし、経験上、あまりややこしくするとデバッグ等が大変になるので、awk には過剰なライブラリ群は向いていない。