awk で複数のプログラムを実行2006年11月29日 10時42分21秒

awk には -f オプションを利用して、awk プログラムを与えることが出来る。それ以外にも、コマンドラインに直接書き込むことも可能だ。

gawk には複数の -f を指定する事が可能だ。その場合は、与えられた順に -f のファイルを読み込む。このことは man に明示されている。

例えば、二つのファイルがあるとする。


% head 1 2
==> 1 <==
BEGIN{print "1"}

==> 2 <==
BEGIN{print "2"}

実行結果はこのようになる。


% gawk -f 1 -f 2
1
2
% gawk -f 2 -f 1
2
1

awk -f 1 -f 2 の場合は cat 1 2 の結果を実行しているのと同じ要領だ。

awk には 古典 awk と nawk があり、FreeBSD や Linux などの PC UNIX には awk は awk でも、拡張版である事が多い。Linux の awk は gawk だった。Solaris には相変わらず、awk の古典版がある。

FreeBSD 6.1 の awk も nawk も複数の -f オプションに付いての記述はない。そこで、実験してみた。


% nawk -f 2 -f 1
2
1
% awk -f 2 -f 1
2
1

どちらでも、複数の -f を指定できる様だ。この様子だと、FreeBSD の awk は nawk のようだ。後で、Solaris でも実験したいと思う。

次回

コメント

コメントをどうぞ

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

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

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

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/11/29/975119/tb

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