awk 演習: スクリプトファイルを実行2009年02月22日 00時04分41秒

awk も他のスクリプト言語と同様に、ファイルに記述して awk スクリプトが書ける。

% cat echo.awk 
#!/usr/bin/awk -f
{ print "echo", $0 }
% chmod +x echo.awk
% ./echo.awk 
Hello, world!
echo Hello, world!
Hello, awk!
echo Hello, awk!

普段使うために書かれたプログラムは、ほとんどの場合何らかのオプションを取り、それに応じて動作や出力を調整する。しかし、awk はその言語の構文的な構成もあり、スクリプトファイルとして作成する、この様なオプションの処理が容易には出来ない。残念ながら、awk は単体としてスクリプトを成すのには向いていない。

awk を使って処理を行なうスクリプトでも、シェルスクリプトとして記述し、オプションを awk 形式のオプションに変換して処理することが多い。


% cat echo.sh            
#!/bin/sh

if [ $# -gt 0 ]; then
        args="-v prefix=$1"
else
        args=""
fi

awk $args '{print prefix, $0}'
% chmod +x echo.sh
% ./echo.sh
Hello
 Hello
% ./echo.sh awk
Hello
awk Hello

awk へのオプションの渡し方が特有なので、それを隠す為にこの様な方法を使っている。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2009/02/22/4134630/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。