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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Conversão de Bases em Bash


From: Michel I. Moreira
Subject: Re: [shell-script] Conversão de Bases em Bash
Date: Thu, 12 Jul 2007 13:21:38 -0300
User-agent: Thunderbird 1.5.0.10 (X11/20070403)

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/>




reply via email to

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