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

맞춤법 검사 기능을 올바르게 사용하십시오! 기능이 작동하지 않습니다. awk에 구문 강조 표시가있는 편집기를 사용하고 있습니까? funtion이 예약어가 아니라는 것을 stackoverflows 마크 업에서 확인할 수 있습니다.

+0

고맙다. 나는 이것을 위해 자신을 때렸다. 나는이 스크립트를 쓰는 방법을 생각하기에 너무 오래 걸렸다. 그래서 나는 기본적인 것을 보지 못했다. nano를 사용했지만 function 키워드를 강조 표시하지 않았다. –

+0

You 소스 파일을 편집하기 위해 emacs 나 vi를 사용해야한다면, 이것은 당신의 삶을 더 편하게 만들 것이고, 당신은이 문제를 더 빨리 디버깅 할 것입니다. 문제가 해결되었음을 표시하려면 옆에있는 체크 표시를 클릭하여이 대답을 수락해야합니다. –

+0

틱 표시, 감사합니다 다시 stackoverflow 내 첫 번째 질문 및 예 vi 튜토리얼 읽어야 할 다음 일 것 같아요. –