ARGV = AWK起動時に指定した入力ファイル名とコマンド名 - AWK
△Gawk on Windows △Gawk △mawk32 ○Mawk ○awk
配列です。AWK起動時に指定した、入力ファイル名とコマンド名が入っています。o 読み込み予定のファイル名を変更する事が出来ます。
o 読み込み予定のファイル増減については、「ARGC = ARGVに入っている要素の個数」の操作が必要です。
**** 書式
--------
ARGV[ 数字 ]
もしくは
ARGV[ 数字 ] = "読み込ませたいファイル名"
--------
o ARGVは変数です。
+ 配列ですので、数字を入れる時「[」や「]」は省略出来ません。
o 数字 = 0の時、コマンド名(注記あり)。1以上かつARGC未満の時、AWK起動時に指定した入力ファイル名
+ 但し、次の処理系では、コマンド名を正しく渡さない事があります。
+ Gawk on Windows 3.1.7
+ Gawk for Windows 3.1.6
+ mawk32 1.3.3
o 読み込ませたいファイル名 -- まだ読み込んでいないファイルについては、読み込むファイルを変更する事が出来ます。
**** 使用例
--------
BEGIN {
print "実行コマンド名(多分) = [" ARGV[0] "]";
for (i = 1; i < ARGC; ++i) {
print "入力ファイルその" i " = [" ARGV[i] "]";
}
}
--------
o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。
**** 機能
o ARGV[0]には、コマンド名相当の値が入っています。内容は、処理系によって異なります。
o ARGV[1] から ARGV[ARGC - 1]までは、AWK実行時に指定した、入力ファイル名が入っています。
o 要素の個数は、変数ARGC に入っています。
o 変数ARGC と一緒に使う事で、入力ファイルを動的に追加、削除する事が出来ます。
+ ARGCを使うと、入力ファイルの読み込み個数を変更できます。+1して指定します。
+ ARGVを使うと、入力ファイル名を変更出来ます。但し、入力ファイル名変更で、現在読み込み中のファイルを切り替える事は出来ません。
** 処理系に依存する動作
o ARGV[0]に設定するコマンド名は、処理系によって、渡し方が異なります。
o 指定された通りコマンド名を設定する処理系
+ Mawk for Windows 1.3.3
+ original = the one true awk(updated May 1, 2007)
o コマンド名として、拡張子を除いたファイル名のみ渡そうとする処理系(最後の「\」の直後から「.」の手前まで)
+ Gawk on Windows 3.1.7
+ Gawk for Windows 3.1.6
+ これらの処理系は、ファイル名に2つ以上「.」が含まれていると、正しく切り出しません。
o 設定するコマンド名が、固定の処理系
+ mawk32 1.3.3 -- 「mawk」固定みたいです。
o もしかすると、UNIX版Gawkや、Gawkの古いバージョンでは、動きが異なるかもしれません。
+ The GNU Awk User's Guide の「6.5.3 Using ARGC and ARGV」によると、「ARGVには、一部のコマンドラインオプションも入っています。」との事でした。
**** メモ
o C言語の argvと違って、指定したオプション全てを取得する事は出来ません。
**** 確認した処理系
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プログラムを書く(▼ABC順)
▼AWK
▼制作メモ
> OFS = printを使って書き出す時の列区切り文字
ORS = printを使って書き出す時の改行文字
> ARGIND = ARGVにおける現在入力中ファイルの位置(Gawk専用)
ENVIRON = 環境変数。読み取り専用
+
ARGC = ARGVに入っている要素の個数