Je suis nouveau dans les scripts shell. Le cœur de mon script est de trouver la différence entre deux horodatages jusqu'à quelques millisecondes. Avec moi, j'ai un fichier avec le contenu des horodatages uniquement
2012-09-13 15:00:29,290 2012-09-13 15:00:29,297
2012-09-13 15:00:29,428 2012-09-13 15:00:29,447
Comme cela, j'ai environ 30k enregistrements, où je ne devrais pas rencontrer de problème de performance lorsque j'exécute un script. De nombreux facteurs comme l'année bissextile, les mois avec 31 jours, etc. entrent en jeu lorsque j'essaie d'écrire un script pour cela.
Quelqu'un peut-il m'aider à ce sujet s'il vous plaît?
text-processing
date
timestamps
Vamshi G
la source
la source
Réponses:
Pas besoin de faire une analyse complexe, date fera toute la magie pour vous, avec l'aide de son ami bash :
PRODUCTION
Voir
man date
REMARQUE
date -d
est très utile, il convertit les horodatages%s
est le temps de l' époque (secondes depuis le 01-01-1970)%N
est nanosecondes$(( ))
et(( ))
est pour l'bash
arithmétique, voir http://mywiki.wooledge.org/ArithmeticExpression$( )
signifiecommand substitution
Est-ce que cela correspond aussi à vos besoins?
la source
Un langage de script tel que Perl, Python ou Ruby sera rapide et nécessitera peu d'efforts. Par exemple, avec Perl et Date :: Parse :
(Pour chaque ligne, remplacer
,
par.
, diviser la ligne en mots à$_[0]
travers$_[3]
, analyser les dates formées par les deux premières et deux mots, et imprimer la différence.)la source
Je viens de tomber sur ce post, il existe - au moins aujourd'hui - une
date
solution plus simple . Utilisation du cadre dans la réponse de @Gilles Quenot (aurait écrit un commentaire à sa réponse, mais pas assez de réputation):Le résultat:
L'utilisation de
%3N
au lieu de%N
tronquera la sortie en millisecondes.la source