[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Alterar formato de uma data
From: |
Fabiano Caixeta Duarte |
Subject: |
Re: [shell-script] Alterar formato de uma data |
Date: |
Mon, 03 Oct 2005 20:55:58 -0300 |
User-agent: |
Mozilla Thunderbird 1.0.2 (X11/20050317) |
Com awk fica fácil :)
$cat formataLog.awk
#!/usr/bin/awk -f
BEGIN {FS=";"; OFS=";"} # Delimitadores de entrada e saída
{
syscmd="date -d \""$3" "$4" seconds\" +%Y%m%d%H%M%S"
syscmd|getline timestamp
close(syscmd)
print $1,$2,timestamp,$5,$6
}
$ ./formataLog.awk arquivo
1.1.1.1; xpto;20051203152805; 5555; 6666
Explicações:
O comando date é chamado através da função getline do awk, guardando seu
retorno na variável 'timestamp'
A função 'close' é chamada para fechar o stream criado entre o awk e o
shell.
A conta feita pelo date é a seguinte: dia tal (03/12/2005) + tantos
(55685) seconds(segundos) e o formato de retorno foi o solicitado.
Por enquanto é só, senhores.
Fabiano Caixeta Duarte
Consultor em soluções para Redes de Computadores
Ribeirão Preto - SP
Alexandro da Silva Teodoro escreveu:
Olá a todos,
Gostaria de alterar o formato da data que esta dentro de um arquivo.
Exemplo:
ip-address; sys-name; date; hour, ifINoctets; ifOUToctets # cabeçalho
1.1.1.1; xpto; 03Dec2005; 55685; 5555; 6666 # formato atual
1.1.1.1; xpto; 20051203154600; 5555; 6666 # formato desejado
Considerações:
A coluna hour representa a qtde de segundos desde o inicio do dia, ou
seja, 55685 / 3600 (qtde de segundo em uma hora) é igual a 15h46m??s.
Os segundos podem ser desconsiderados.
Obrigado
- Alterar formato de uma data, Alexandro da Silva Teodoro, 2005/10/03
- Re: [shell-script] Alterar formato de uma data,
Fabiano Caixeta Duarte <=