awk dá o seguinte erro
Pergunta
"awk:. SYSTIME Função não está definido"
mas SYSTIME é construído em um comando
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 ??p>
nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '