Defina a data do Linux com o ddmmyy

0

Eu preciso definir a data de uma caixa do Linux com uma string que recebo de um programa. Esta cadeia é formatada como ddmmyy. É possível usar isso diretamente ou preciso reformatá-lo primeiro?

Atualmente, tentei o seguinte sem qualquer sorte:

 date +%d%m%y -s "071012"

Deve ser 7. Oct 2012 , mas é interpretado ao contrário e, em seguida, torna-se 12. Oct 07.

Se eu tentar dizer a data para usar o formato reverso:

date +%y%m%d -s "071012"

ele ainda vai ler como 12. 07 de outubro. Eu prefiro não reverter a cadeia, porque eu pensei que a data seria capaz de cuidar disso.

    
por drblah 09.10.2012 / 13:40

2 respostas

3

O + definiu apenas o formato saída . Você precisa pré-formatar sua string se quiser usar a opção -s (modificando seu programa ou usando, por exemplo, sed ).

No seu caso, você pode canalizar o resultado do seu programa:

sed -e "s/\(..\)\(..\)\(..\)/\3\2\1/"
    
por 09.10.2012 / 13:49
0

Armazene a data em uma variável de shell e você pode definir a data da seguinte forma:

dt='your_program'
date -s "${dt:4:2}${dt:2:2}${dt:0:2}"
    
por 09.10.2012 / 13:54

Tags