Bom dia senhores...

Achei muito interressante isso, e aproveitando o assunto, estou montando 
um script que vai ler um arquivo de log, onde preciso pegar o periodo 
entre duas data. O problema é que no log é gravado em unix timestamp e 
eu tenho que passa as datas convencionais para ele.

Eu consegui fazer o inverso do que eu preciso, apos algumas googladas.

Exemplos:
$ awk 'BEGIN {print strftime("%d/%m/%Y",1158857787)}'
21/09/2006

ou

$ date -d '1/1/1970 + 1158857787 seconds' '+%d/%m/%Y'
21/09/2006


Alguem tem alguma ideia de como poderia fazer o contrario disso, ou 
seja, entrar com a data em formato dd/mm/yyyy e sair com timestamp


Desde ja muito obrigado

Michel




Tiago Barcellos Peczenyj escreveu:


> Muito interessante esta dica que vi no "Advanced Bash-Scripting Guide"
> do Mendel Cooper [ http://tldp.org/guides.html 
> <http://tldp.org/guides.html> ] e, inclusive,
> publiquei no meu blog com um adendo sobre fazer o mesmo usando o bc
> que todo mundo deve estar careca de saber.
>
> Com Bash, podemos representar números nas mais variadas bases, desde 2
> até 64 usando o operador # como no exemplo abaixo:
>
> X=101
> for BASE in 2 8 10 16 32 64 ; do
> echo "$X na base $BASE eh $(( ${BASE}#${X} ))" # conversao pra decimal
> done
> 101 na base 2 eh 5
> 101 na base 8 eh 65
> 101 na base 10 eh 101
> 101 na base 16 eh 257
> 101 na base 32 eh 1025
> 101 na base 64 eh 4097
>
> echo $((16#FF)) $((32#V))
> 255 31
>
> echo $((64#z)) $((64#Z)) $((64#@)) $((64#_)) # atenção nos 2 ultimos!
> 35 61 62 63
>
> Além de ser possível usar a notação de octal e hexa do C (iniciar a
> expressão com 0 e 0x, respectivamente)
>
> echo $((10)) $(( 010 )) $(( 0x10 )) $((10 + 010 + 0x10))
> 10 8 16 34
>
> -- 
> Tiago B Peczenyj
> Linux User #405772
>
> http://peczenyj.blogspot.com/ <http://peczenyj.blogspot.com/>
>
>  

Responder a