Pergunta

"awk:. SYSTIME Função não está definido"

mas SYSTIME é construído em um comando

Foi útil?

Solução

No Solaris, /usr/bin/awk é, por padrão um link para /usr/bin/oawk, que não reconhece systime como um construído em (ou um monte de outras extensões sobre a 7ª Edição AWK). Ou /usr/bin/awk relink para /usr/bin/nawk ou utilização nawk directamente, ou obter GNU Awk (gawk) instalado e usar isso.

Outros sistemas Unix, como o HP-UX, AIX pode ter problemas semelhantes. MacOS X (e, por inferência, BSD) instalar um não-GNU, versão não-estendido de awk (obrigado pela correção, dmckee). Linux não o faz; ele usa GNU Awk como o principal apenas awk /. Claro, GNU Awk pode ser facilmente instalado em qualquer um destes sistemas.

Outras dicas

Parece ser uma questão de awk "sabor".

GAWK (gnu awk) inclui SYSTIME (), mas talvez a versão que você está usando não ...

A menos chamadas SYSTIME são destinadas a manter o controle de diferenças de tempo dentro do script awk em si, um truque para contornar a falta de SYSTIME awk () função seria a de passar o valor desta variável do sistema como uma variável na linha de comando awk .

Por exemplo, no meu sistema tanto gawk e mawk estão instalados.

echo |mawk '{print systime()}'

produz:

mawk: line 2: function systime never defined

enquanto

echo |gawk '{print systime()}'

produz:

1252953754

Aqui está o que eu fiz para obter o carimbo de data

nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top