awk 演習: スクリプトファイルを実行 ― 2009年02月22日 00時04分41秒
% 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 へのオプションの渡し方が特有なので、それを隠す為にこの様な方法を使っている。
最近のコメント