2009-09-14 3 views
1

"awk : 함수 시스템이 정의되지 않았습니다."awk가 다음 오류를 표시합니다.

하지만 SYSTIME은

+0

당신이 우리에게 보여줄 수 시간 스탬프를 사용하는 모든 명령을 얻기 위해 무슨 짓을? 그러한 제한된 정보로 당신이 찾고있는 것을 설명하기 란 어렵습니다. 감사! – Buggabill

답변

5

, /usr/bin/awk 기본적으로 RECO하지 않습니다 /usr/bin/oawk에 대한 링크입니다 systime이 내장되어 있습니다 (또는 제 7 판 AWK에 비해 많은 확장 기능). /usr/bin/awk/usr/bin/nawk으로 다시 연결하거나 nawk을 직접 사용하거나 GNU Awk (gawk)를 설치하여 사용하십시오.

HP-UX와 같은 다른 유닉스 시스템에서도 AIX와 비슷한 문제가있을 수 있습니다. MacOS X (및 추론에 의한 BSD)는 awk의 비 GNU 비 확장 버전을 설치합니다 (수정, DMcKee 덕분에). Linux는 그렇지 않습니다. GNU Awk를 주/단 awk으로 사용합니다. 물론 GNU Awk는 이러한 시스템에 쉽게 설치할 수 있습니다. 여기

+0

수정 : 적어도 10.4 및 10.5 용 Mac OS는 gawk를 기본적으로 사용하지 않습니다 *. 그것은 fink (또는 아마 macports)를 사용하여 쉽게 설치됩니다. – dmckee

3

는 AWK "맛"의 문제로 보인다 명령에 내장되어 있습니다. SYSTIME 통화를하려면 awk 스크립트 자체 내에서 트릭을 시간 차이를 추적하는 것을 의미하지 않는

...

GAWK는 (GNU AWK는) SYSTIME()를 포함하지만, 어쩌면 당신이 사용하고있는 버전은하지 않습니다 awk가 없다는 것을 피할 수 있습니다. systime() 함수는이 시스템 변수의 값을 awk 명령 행의 변수로 전달하는 것입니다.

2

예를 들어, 내 시스템에서 gawkmawk이 모두 설치되어 있습니다.

echo |mawk '{print systime()}' 

는 생산 :

echo |gawk '{print systime()}' 

가 생산

mawk: line 2: function systime never defined 

동안 :

Solaris에서
1252953754 
1

내가

nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '