Como obter a data de ontem e armazenada em uma variável

1

Estou tendo um arquivo de log no qual preciso fazer o grep com base na data de ontem. Como obter a data de ontem.

O registro de data e hora no arquivo de log é formatado como:

  • Wed Sep 23 para dois dígitos
  • Wed Dec 1 para um dígito

Observe que estou no HP / UX, onde date não é GNU date .

    
por Pooja 06.12.2015 / 19:07

2 respostas

2

Espero que você possa usar o perl

$ dt='perl -e 'print substr(scalar localtime(time-86400),0,10)''
$ echo "$dt"
Sat Dec  5
$ grep "$dt" <logfile>

No código perl acima, time retorna o tempo atual em segundos desde a época. Para obter ontem, subtrair 86400 segundos e escalar imprime em formato legível. Eu suponho que você só precisa ontem em DAY MON DT format, então você poderia grep todas as linhas correspondentes naquele dia, independentemente do tempo. Para apenas pegar campos obrigatórios, use substr para imprimir os primeiros 10 caracteres e salvar em dt variable. Você poderia usar essa variável com grep .

    
por 06.12.2015 / 23:19
0

Sua pergunta é mal formulada, mas pelo que eu percebi você está procurando por algo assim:

date --date="-1 day" +"%a %b %-d"

Isso lhe dará a data de ontem formatada da mesma maneira que você deu no seu snippet de arquivo de log. Você pode salvar isso em uma variável fazendo:

yesterday=$(date --date="-1 day" +"%a %b %-d")

ou para grep você pode fazer algo como o seguinte:

yesterday=$(date --date="-1 day" +"%a %b %-d") ; grep "$yesterday" <file name>

Espero que responda à sua pergunta

    
por 06.12.2015 / 19:42