ARGC = ARGVに入っている要素の個数 - AWK
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○(注記あり)awk
配列 ARGVに入っている要素の個数です。o この値を減らす事で、読み込み予定のファイルを読み込まない事も出来ます。
o 入力ファイルを増やす時は、この値を増やすと共に、配列ARGVにファイル名を登録します。
**** 書式
--------
ARGC
もしくは
ARGC = 読み込ませたいファイルの数+1
--------
o ARGCは変数です。
o 読み込ませたいファイルの数+1 -- 入力ファイルの数を調節する事が出来ます。
+ これまでに読み込んだファイルの数も数えます。
**** 使用例
--------
BEGIN {
print "AWK実行時に指定した、入力ファイルの一覧";
for (i = 1; i < ARGC; ++i) {
print "入力ファイルその" i " = [" ARGV[i] "]";
}
print "入力ファイルを削減する時";
if (ARGC > 1) {
--ARGC;
}
print "入力ファイルを追加する時";
ARGV[ARGC++] = "ミクさん語録.txt";
# 上の文は、ARGV[ARGC] = "ミクさん語録.txt"; ++ARGC; と書く事も出来ます。
}
--------
o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。
**** 機能
o 配列 ARGVに入っている要素の個数です。
o AWKを起動する時に指定した入力ファイルの数に、1を足したものが入っています。
o この値を増やす事で、入力ファイルを動的に追加する事が出来ます。
+ 同時に、配列 ARGVの最後に入力ファイルを追加します。
o この値を減らす事で、入力ファイルを動的に減らす事も出来ます。
** 処理系に依存する動作
o もしかすると、UNIX版Gawkや、Gawkの古いバージョンでは、動きが異なるかもしれません。
+ The GNU Awk User's Guide の「6.5.3 Using ARGC and ARGV」によると、「ARGVには、一部のコマンドラインオプションも入っています。」との事でした。
o ARGCの値を、現在読み込み中の位置以下に設定した時、動作は処理系によって異なります。
+ 次の処理系では、この値を変更すると直ぐに反映されて、ファイル読み込みを終了します。
+ original = the one true awk(updated May 1, 2007)
+ その他の処理系では、現在の入力ファイルの読み込みが終了してから、ARGCの値を確認 = ファイル読み込み終了します。
**** メモ
o C言語の argcと違って、コマンド実行時に指定した引数を、全部取得する事は出来ません。
**** 確認した処理系
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
▼制作メモ
> ARGV = AWK起動時に指定した入力ファイル名とコマンド名
ARGIND = ARGVにおける現在入力中ファイルの位置(Gawk専用)
ENVIRON = 環境変数。読み取り専用