Задавалось вопросом, выполнимо ли это в AWK в течение некоторого времени, но всегда обходил его в прошлом.
Ниже я инициализирую массив с 3 месяцами года ... для удобства чтения я пропустил остальные 9 месяцев. Эти месяцы затем используются в операторе if как часть регулярного выражения, но AWK это не нравится. Я не могу найти что-либо в руководствах по awk / gawk относительно этого вида семантики ... я действительно застрял с повторением одного и того же кода 12 раз? Также возможно ли использовать arr [i] в цикле как подстроку имени переменной? Я написал псевдокод ниже, чтобы дать представление о том, чего я пытаюсь достичь. Я знаю, что это возможно в СНОБОЛЕ ;-) Спасибо!
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
}
}
}
Если что-то из этого выполнимо, я очень ценю указатели!