しばらくの間、これが AWK で実行可能かどうか疑問に思っていましたが、過去には常に回避していました。
以下では、1 年の 3 か月で配列を初期化しています。読みやすくするために、残りの 9 か月は省略しています。これらの月は正規表現の一部として if ステートメントで使用されますが、AWK はそれを好みません。この種のセマンティックに関する awk/gawk マニュアルには何も見つからないようです... 同じコードを 12 回も言い直すことに本当にこだわっていますか? また、変数名の部分文字列としてループ内で arr[i] を使用することは可能ですか? 私が達成しようとしていることのアイデアを与えるために、以下に疑似コードを書きました。SNOBOL で実行可能であることはわかっています ;-) ありがとうございます。
BEGIN {
arr[0] = "AUG"
arr[1] = "SEP"
arr[2] = "OCT"
}
{
for(i in arr)
{
if($1 ~ /arr[i]/)
{
#Controls flows into here if $1 matches AUG, SEP, OCT
#Furthermore, pretend I want to intialize a variable like AUGseen:
arr[i]seen = 1
}
}
}
これらのいずれかが実行可能である場合、私はポインターに大いに感謝します!