2013-05-30 3 views
0

у меня есть функции в моем 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 
} 

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

ответ

0

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

+0

Большое вам спасибо, я похлопал себя по этому поводу, взял меня так долго, чтобы понять, как написать этот скрипт, что я не видел что-то такое basic.was использование nano для этого, но он не выделяет ключевое слово функции –

+0

You должен идти с emacs или vi для редактирования исходных файлов, это облегчит вам жизнь, и вы быстрее отладите эту проблему. Вы должны принять этот ответ, нажав галочку рядом с ним, чтобы показать, что ваш вопрос решен. –

+0

отметьте отметку, еще раз спасибо, это был мой первый вопрос о stackoverflow и да, я думаю, что учебник vi - это следующее, что я буду читать. –