segunda-feira, 12 de agosto de 2013

Trabalhando com datas na linha de comando

O comando date mostra a data e hora em vários formatos. A melhor forma de explicá-lo é com exemplos.

$ date
Seg Ago 12 15:01:54 BRT 2013

Mostrar a hora de acordo com a RFC 2822.
$ date -R
Mon, 12 Aug 2013 15:02:00 -0300
$

Mostrar o horário UTC - Hora Universal.
$ date -u
Seg Ago 12 18:04:35 UTC 2013
$

Mostrar o dia da semana.
$ date "+%a"
Seg
$

Mostrar o mês.
$ date "+%b"
Ago
$

Mostrar o nome do mês completo.
$ date "+%B"
agosto
$

Mostrar hora e minuto no formato 24 horas.
$ date "+%H:%M"
15:19
$

Mostrar a data de 7 dias atrás.
$ date "+%d/%m/%Y" --date='1 week ago'
05/08/2013
$

Mostrar a data de ontem.
$ date "+%d/%m/%Y" --date='1 day ago'
11/08/2013
$

Eu uso esse comando com as mais variadas opções em meus scripts. Por exemplo, para emitir um relatório de um período específico no Sarg, eu uso o seguinte:

$ periodo=`date "+%d/%m/%Y" --date='1 month ago'`-`date "+%d/%m/%Y" --date='1 day ago'`
$ echo $periodo
12/07/2013-11/08/2013
$