2010年9月14日火曜日

AWKPATH = コマンドでAWKファイル名を指定する時、ファイルの場所を省略する方法(Gawk, mawk32専用) - AWK

AWKプログラムを動かす
AWKのパターンと制御文
○Gawk on Windows ○Gawk ○mawk32 ×Mawk ×awk
環境変数 AWKPATH を設定すると、コマンドでAWKプログラムのファイル名を指定する時に、AWKはファイルの場所を追加検索してくれます。

o この環境変数で省略出来るのは、プログラムファイル名だけです。入力ファイル名の場所を省略する事は出来ません。
o この機能は、サポートしていない処理系があります。


**** 書式
--------
(Windowsの場合)
set AWKPATH=追加検索したい場所
--------

o この環境変数は、Gawkとmawk32の拡張機能です。
o 追加検索したい場所 -- 省略したいファイルの場所です。
   + 複数指定する時は、「;」(セミコロン)で区切ります。
   + 例: set AWKPATH=.;C:\Program
   + 環境変数を指定するコマンド「set」は、大文字で書く事も出来ます。


**** 使用例
--------
set AWKPATH=.;c:\awk\mikulib
gawk -f a.awk -f mikulib1.awk -f mikulib2.awk in.txt > out.txt

set AWKPATH=.;c:\awk\mikulib;c:\awk\mylib
gawk -f a.awk -f mikulib1.awk -f mylib1.awk -f mylib2.awk in.txt > out.txt
--------

o 最初に「.」を指定すると、カレントディレクトリを最初に検索します。
o 逆に「.」を指定しない時、カレントディレクトリの検索を後回しにします。


**** 機能
o この環境変数で指定した場所(= ディレクトリ)は、コマンドでAWKプログラムを指定した時に限り、省略する事が出来ます。
o AWKがファイルの場所を探す時、この環境変数で指定した場所は、通常の検索よりも優先します。
o この環境変数にファイルの場所を複数書いた時、先に書かれている場所を優先して探します。
o この機能は、サポートしていない処理系があります。

** 環境に依存するかもしれない動作
o 「.」を指定しない時の動作は、環境によって異なるかもしれません。
o Windowsの場合は、「.」を指定しなくても、カレントディレクトリを検索します。


** 初期値について
o Gawkでは、AWKPATH 環境変数が指定されていない場合、次の場所を AWKPATHとして扱います。
   + Gawk on Windows 3.1.7 の場合、ENVIRON[AWKPATH] = ".;c:/lib/awk;c:/gnu/lib/awk"
   + Gawk for Windows 3.1.6 の場合、ENVIRON[AWKPATH] = ".;c:/progra~1/Gawk/share/awk"
o mawk MBCS (32bit版) 1.3.3 の場合、初期値は設定しないみたいです。

** 処理系に依存する動作
o この機能をサポートしている処理系は、上の「初期値について」の通りです。


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3
o Mawk for Windows 1.3.3 -- 非対応
o original = the one true awk(updated May 1, 2007) -- 非対応


==
関連ページ:
    ▼AWKプログラムを動かす
    ▼AWKのパターンと制御文▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > GawkをオリジナルのAWK互換モードで動かす
    > ▼AWKの配列操作機能
    +
    AWKを実行する時に、プログラムファイルを複数指定する
    AWKプログラム実行時に変数を設定する
    入力ファイルを手入力する