Altera apenas o ano na saída do comando "date"

0

date , por exemplo, exibe Fri Apr 17 20:16:01 IST 2015

Agora, quero alterar apenas o ano, então date deve exibir Fri Apr 17 20:16:01 IST 2016 neste exemplo.

Como adicionar 1 ano à saída de date usando comandos do Linux?

    
por user110887 17.04.2015 / 17:52

2 respostas

1

Se você quiser que date crie a formatação de data padrão, faça o seguinte:

$ date -d "$( date -d "Fri Apr 17 20:16:01 IST 2015" "+2016-%m-%d %T" )"

Mas você também pode usar apenas uma instância de data e usar os especificadores de formato de hora apropriados, como em:

date -d "Fri Apr 17 20:16:01 IST 2015" "+%a %b %e %T %Z 2016"

Ou - como o formato de data tem o ano no final - faça apenas processamento de string na data de referência, por exemplo, usando awk , como em:

date -d "Fri Apr 17 20:16:01 IST 2015" | awk '$NF=2016'

Se o ano não for fixo, mas deve ser no ano seguinte:

date -d "Fri Apr 17 20:16:01 IST 2015" | awk '++$NF'

Se sua data já estiver em uma string date_string , isso pode ser:

awk '$NF=2016' <<< "${date_string}"
    
por 17.04.2015 / 18:11
1

A data do GNU aceita um número de datas relativas que você pode fornecer com o sinalizador -d .

$ date -d '+1year'
Sun Apr 17 09:15:14 PDT 2016

Consulte itens relativos em strings de data para detalhes.

    
por 17.04.2015 / 18:16