shell-script-pt
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]