web-dev-qa-db-fra.com

Suppression des zéros non significatifs de la sortie de date

J'ai créé un alias de la commande date pour afficher la date au format suivant:

2013.06.14.12.10.02

en utilisant cette commande:

alias date = date +"%Y.%m.%d.%H.%M.%S"

Tout fonctionne très bien, sauf que je veux supprimer les zéros de tête de la sortie.

Il n'y a aucun moyen d'y arriver en changeant le format. Je pense que cela ne peut être fait qu'en canalisant la sortie vers d'autres commandes comme sed et awk.

Le système d'exploitation que j'utilise est Ubuntu 12.04.2 LTS.

46
easl

Selon la page de manuel GNU date:

   By default, date  pads  numeric  fields  with  zeroes.   The  following
   optional flags may follow '%':

   -      (hyphen) do not pad the field

Vous pouvez donc faire

alias date="date '+%Y.%-m.%-d.%-H.%-M.%-S'"

et recevoir

2013.6.14.3.19.31
82
j883376

Ça fait idiot, mais puisque cette question est étiquetée avec /sed, voici un moyen de le faire avec sed, comme vous l'aviez mentionné :)

alias date='date +"%Y.%m.%d.%H.%M.%S" | sed "s/^0*//g; s/\.0*/./g"'
4
CoreyJJohnson