Tolower кажется, путь. Смотрите здесь для получения дополнительной информации:
"В общем, вы не можете использовать IGNORECASE, чтобы сделать некоторые правила нечувствительными к регистру, а другие правила чувствительны к регистру, потому что не существует простого способа установить IGNORECASE только для шаблона конкретного правила.17 Для этого используйте либо выражения в скобках или tolower (). Однако с IGNORECASE можно сделать только одну вещь - динамически включать или выключать чувствительность к регистру для всех правил одновременно. "
от: Руководство пользователя GNU Awk
EDIT:
Вы должны подумать о лучшей спецификации вашей проблемы. Попробуйте это:
#Input: hello Hello HELLO World
#Output: hello 3 World 1
{for (i=1;i<=NF;i++){
a=tolower($i)
count[a]=$i","count[a]
}
}
END{for (i in count){
split(count[i],res,",")
l=length(res) - 1
if (l==1){
print res[1],1
} else {
print tolower(res[1]),l}
}
}
HTH Крис