Вы можете пропустить первую запись (строку), добавив правило к блоку:
НО > 1 {
если (макс.<($2)){
макс=$2;
max_breed=$1;
}
}
Однако стоит попытаться понять, почему вы получаете тот результат, который получаете, когда не исключить первую строку - потому что:
когда NR==1, значение Максимум является 0 (числовой - присваивается в НАЧИНАТЬ блок), но значение $2 является Голоса (это строка). Итак, выражение макс<($2) обращает Максимум к строке и выполняет лексикографическое сравнение. Если 0 меньше чем В в вашей локали, тогда результат ИСТИНА, и Максимум назначается строковое значение Голоса
для последующих строк, $2 является числовым, но Максимум теперь это строка, поэтому $2 преобразуется в строку, и снова сравнение является лексикографическим. Предполагая В имеет больший лексикографический вес, чем любая из цифр 0 через 9, В всегда побеждает.
Кроме того, ваш шебанг выглядит недействительным - вероятно, он должен быть
#!/usr/bin/awk -f
или же
#!/bin/awk -f
в зависимости от вашей версии Ubuntu. Кроме того, такие задания, как max_breed=$1 не имеют особого смысла в НАЧИНАТЬ блок, так как он выполняется перед все записи обработаны.