awk функция не позволяет вернуть

у меня есть функции в моем скрипте awk для разбора строк, содержащих определенные слова/символы

function tohyphen (o) {
        split ($0,a,"to[-_]")
        split (a[2],b,"-")
        k=b[1]
        p=b[2]
        return k
}

function tospace (o) {
        split ($0,a,"to ")
        split (a[2],b,"-")
        k=b[1]
        p=b[2]
        return k
}

funtion pipe (o) {
        split ($0,a,"|")
        split (a[2],b,"-")
        x=b[1]
        y=b[2]
        return x
        #return x
}
{
#if (match ($0, /to[-_]/))
if ($0 ~ /to[-_]/)
        print "found to- for interface ", $1, " is ", tohyphen($0), "is ",p, " is ", $1="",$0

else if ($0 ~ /to /)
        #(match ($0, /to /))
        print "found to  for interface", $1, " is ", tospace($0), "  is ", p, " is ", $1="",$0
else if ($0 ~ /\|/)
#       pipe($0)
        print "found to  for interface", $1, " is ",topipe($0), "  is ", y, " is ", $1="",$0
else
        print $1, $1="",$0
}

в третьей функции, которая просто ищет совпадение с конвейером, она не позволяет мне ничего возвращать, давая мне возврат ошибки вне функции. любая идея, в чем может быть проблема или какой-либо другой способ запустить это.


person Allan Pinto    schedule 30.05.2013    source источник


Ответы (1)


Попробуйте правильно написать функция! У вас есть функция, а не функция. Используете ли вы редактор с подсветкой синтаксиса для awk? Вы можете видеть из разметки stackoverflows, что функция не является зарезервированным словом.

person Chris Seymour    schedule 30.05.2013
comment
Большое вам спасибо, я ударил себя за это, мне потребовалось так много времени, чтобы понять, как написать этот скрипт, что я не видел чего-то настолько простого. Использовал для этого nano, но он не выделяет ключевое слово function - person Allan Pinto; 30.05.2013
comment
Вы должны использовать emacs или vi для редактирования исходных файлов, это сделает вашу жизнь проще, и вы быстрее отладите эту проблему. Вы должны принять этот ответ, щелкнув галочку рядом с ним, чтобы показать, что ваш вопрос решен. - person Chris Seymour; 30.05.2013
comment
отметьте галочкой, еще раз спасибо, это был мой первый вопрос о stackoverflow, и да, я думаю, что учебник по vi — это следующая вещь, которую я собираюсь прочитать. - person Allan Pinto; 30.05.2013