Exibe o registro de data e hora em dd / mm / aaaa_hh: mm: ss: ms no Unix ou Linux

22

Eu preciso mostrar a data e a hora no formato desejado no Unix / Linux. Meu formato desejado é: dd / mm / aaaa hh: mm: ss: ms no Unix ou Linux. Cheguei perto usando o seguinte comando:

echo $(date +%x_%r)

Isso retorna:

08/20/2012_02:26:14 PM

Alguma sugestão?

    
por Hank 20.08.2012 / 20:38

5 respostas

20
date +%x_%H:%M:%S:%N

se você precisar imprimir apenas dois primeiros nums como ms:

date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$//'

para armazená-lo no var:

VAR=$(date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$//')
    
por 20.08.2012 / 20:50
22

Se você quiser milissegundos em vez de precisão de nanossegundos, você pode usar %3N em vez de %N :

$ date +'%d/%m/%Y %H:%M:%S:%3N'
12/04/2014 18:36:20:659

ou com o uso desejado de $(…) :

$ echo "$(date +'%d/%m/%Y %H:%M:%S:%3N')"
12/04/2014 18:36:20:659

Mas esteja ciente de que %N pode não ser implementado dependendo do seu sistema de destino ou versão bash. Testado em um sistema embarcado »GNU bash, versão 4.2.37 (2) -release (arm-buildroot-linux-gnueabi)« não houve %N (nem %3N ):

date +"%F %T,%N"
2014-01-08 16:44:47,%N
    
por 12.04.2014 / 18:38
4

data do homem

date +"%d/%m/%Y_%H:%M:%S:%N"

Mais leitura útil: Como formatar a data para exibição ou uso em um script de shell

    
por 20.08.2012 / 20:50
0

Algo parecido com isto

date +'%d/%m/%Y_%H:%M:%S:%N'

Usou% N por nanossegundos (000000000..999999999) desde que eu não encontrei milissegundos agora

    
por 20.08.2012 / 20:53
0

Você pode tentar:

echo 'date +"%Y_%m_%d %H:%M:%S,"''date +%N/1000000|bc -l|grep -Eo "^([0-9]{0,3})"'

Por alguma razão '' 'é omitido, então coloque-o após o eco e no final, ou simplesmente:

date +"[%Y_%m_%d %H:%M:%S,%3N]"
    
por 27.11.2013 / 08:46