Por exemplo, desejo exibir a data e hora atuais no seguinte formato:
yyyymmddhhmmss
Como faço isso? Parece que a maioria formato de data vem com -
, /
, :
, etc.
Aqui está:
date +%Y%m%d%H%M%S
Como man date
diz perto do topo, você pode usar o date
comando assim:
date [OPTION]... [+FORMAT]
Ou seja, você pode dar a ele um parâmetro de formato, começando com a +
. Você provavelmente pode adivinhar o significado dos símbolos de formatação que usei:
%Y
é para o ano%m
é por mês%d
é por diaVocê pode encontrar este e outros símbolos de formatação em man date
.
Um exemplo simples em script de shell
#!/bin/bash
current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
Sem formato de pontuação: - +% Y% m% d% H% M% S
Com pontuação: - +% Y-% m-% d% H:% M:% S
"`date +%Y-%m-%d %H:%M:%S`"
dá-me umdate: illegal time format
Se você estiver usando o Bash, também poderá usar um dos seguintes comandos:
Você pode usar a opção
-v varname
para armazenar o resultado em$varname
vez de imprimi-lo no stdout:Embora o comando de data seja sempre executado em um subshell (isto é, em um processo separado), printf é um comando interno e, portanto, será mais rápido.
fonte
%
opções você pode passar, isso parece estar usando odate
comando. Assim,man date
apresentará as opções disponíveis.Sem pontuação (como @Burusothman mencionou):
O / P:
Com pontuação :
O / P:
fonte
Maneira interessante / engraçada de fazer isso usando a expansão de parâmetros (requer
bash 4.4
ou mais recente):fonte