Heure de la date dans Linux bash [fermé]

26

J'essaie d'afficher une date-heure sous forme de

07/08/2013 16:52:13

en utilisant la commande dans le script bash:

dt=`date '+%d/%m/%Y_%H:%M:%S'`

quelle variable est utilisée pour remplir un fichier CSV.

Le seul caractère accepté est "_" (souligné) ou "-" entre la date et l'heure, la sortie est

07/08 / 2013_16: 52: 13

Comment obtenir un espace entre la date et l'heure? J'ai essayé presque (j'espère) tout.

Henri
la source
5
« » Et «-» sont les seuls caractères acceptés par _qui ? Qu'est-ce qui vous empêche de remplacer «_» par «» dans datela chaîne de format de?
manatwork
Rien n'empêche l'inclusion du "" dans la commande, ils n'apparaissent tout simplement pas dans la sortie. Essayez la date + "% b% e" et vous obtiendrez "4 septembre" (un espace) pour aujourd'hui, pas le 2. souhaité. Je l'utilise dans un script et ma solution est de faire l'opération en 3 étapes (I en fait, combinez-les en une seule ligne de code, mais vous avez l'idée).
Jim2B
Avec tout le respect que je vous dois, comment cette question a-t-elle obtenu 20 votes? Et comment est-il entré dans la file d'attente de réouverture?
G-Man dit `` Réintègre Monica '' le

Réponses:

49
#!/bin/bash

dt=$(date '+%d/%m/%Y %H:%M:%S');
echo "$dt"

Je suppose que le problème est en «écho» à la csv.

user1293137
la source
3
si vous avez besoin de millisecondes, utilisez date '+%F %T.%3N'. si vous avez besoin de microsecondes, utilisez date '+%F %T.%6N'. si vous avez besoin de nanosecondes, utilisez date '+%F %T.%N'. %Fest pour la date, il donne YYYY-MM-DD, vous pouvez utiliser à la %Dplace pour obtenir MM-DD-YYYY, %Test pour le temps HH:MM:SS,.
computingfreak
4

Cela marche:

#!/bin/bash
dt=`date '+%d/%m/%Y %H:%M:%S'`
echo "$dt"

Il est également possible d'utiliser $(et )au lieu de `et`.

Alexandre
la source
J'ai oublié de mentionner que cela ne va pas après avoir appliqué awk / home / pi / SB_tool / sunnybeamtool / bin / sunnybeamtool -l | awk -v tot = $ tot -v dt = $ dt -v day = $ day -v mth = $ mth 'erreur suivante 08/08/2013 23:03:03 awk: ligne 1: erreur de syntaxe à ou près de:
Henry
Résolu en affectant 2 valeurs distinctes dt et tm. awk n'accepte pas 1 variable avec 2 valeurs séparées par un espace
Henry