ARGIND = ARGVにおける現在入力中ファイルの位置(Gawk専用) - AWK
○Gawk on Windows ○Gawk ×mawk32 ×Mawk ×awk
変数です。ARGVにおける現在入力中ファイルの位置が入っています。**** 書式
--------
ARGIND
--------
o この変数は、Gawkの拡張機能です。
o ARGINDは変数です。
**** 使用例
--------
{
if (FNR == 1) {
print "現在の入力ファイルは[ " FILENAME " ]です。";
for (i = 1; i < ARGC - ARGIND; ++i) {
print "その後の入力予定ファイルその" i " = [" ARGV[ARGIND + i] "]";
}
if (ARGC - ARGIND < 2) {
print "その後の入力予定ファイルは、ありません。";
}
}
}
--------
o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。
**** 機能
o ARGVにおける現在入力中ファイルの位置が入っています。
+ ARGV[ARGIND]は、FILENAMEに相当します。
o BEGINパターンの中では、ARGINDの値は 0 です。
o この値が更新されるのは、次の入力ファイルを読み込む時です。
o この値を変更しても、入力処理は変わりません。
o この機能をサポートしていない処理系があります。
** 処理系に依存する動作
o この機能をサポートしている処理系は、次の通りです。
+ Gawk on Windows 3.1.7
+ Gawk for Windows 3.1.6
**** メモ
o ARGINDの動作原理
--------
BEGIN {
ARGIND = 0; # 最初は、0という値が入っています。
}
FNR == 1 {
++ARGIND; # 最初の行を読み込む時に更新されます。
}
--------
o Gawk用に作ったプログラムを他で動かす時の例。関数への置き換えです。
+ ARGCの値が間違っていても、それなりの値を返すようにしました。
--------
function GetARGIND( tmpi) {
for (tmpi = ARGC - 1; tmpi > 0; --tmpi) if (ARGV[tmpi] != FILENAME) return tmpi;
for (tmpi = (ARGC < 1)?0:(ARGC - 1); (tmpi > 0 && ARGV[tmpi] != FILENAME); --tmpi);
return tmpi;
}
{
print GetARGIND(); # ARGINDを使っている所を、関数呼び出しに置き換えます。
}
--------
**** 確認した処理系
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のパターンと制御文(▼ABC順)
▼AWKプログラムを書く(▼ABC順)
▼AWK
▼制作メモ
> ENVIRON = 環境変数。読み取り専用
PROCINFO = AWKのプロセスに関する情報。プロセスIDなど(Gawk専用)
AWKPATH = コマンドでAWKファイル名を指定する時、ファイルの場所を省略する(Gawk, mawk32専用)
+
ARGC = ARGVに入っている要素の個数
ARGV = AWK起動時に指定した入力ファイル名とコマンド名
FILENAME = 現在入力ファイルの名前
(2010年8月17日変更。使用例が文法エラーになっていたので訂正)