Signaler

Heure AM/PM en français [Résolu/Fermé]

Posez votre question pheslot 61Messages postés lundi 17 décembre 2007Date d'inscription 6 juillet 2011 Dernière intervention - Dernière réponse le 24 août 2011 à 17:30 par kary
Bonjour,

Sous Unix comment transformer dans un fichier texte une heure du genre : 09:00 PM ou 03:00 AM en 21:00 et 3:00 ?


Merci d'avance
Afficher la suite 
Utile
+15
plus moins
Salut,

man date
info date
$ date -d "09:00 PM" +%R
21:00
$ date -d "03:00 AM" +%l:%M
 3:00
;-))
Cette réponse vous a-t-elle aidé ?  
Utile
+4
plus moins
Salut jipicy,

Oups, j'ai oublié de préciser que le fichier texte et générer sous windob et est du genre :

Wed 11/21/2007
05:12 PM
25
Wed 11/21/2007
05:14 PM
26
Thu 11/22/2007
09:04 AM
8

Utile
+2
plus moins
Merci jipicy, c'est super.
Je me suis fais une machine virtuelle sous Ubuntu pour être compatible avec tes réponses ;-)
Utile
+1
plus moins
J'ai bien une solution, mais elle est à base de "GNU sed" et je doute que ça marche sous Unix ;-((
Utile
+1
plus moins
De rien ;-))
Utile
+0
plus moins
Je te colle la solution à base de "GNU sed" (> 4.0.5) :
$ cat foo.sh
#! /bin/bash

while read line
do
case "$(egrep -o "AM|PM" <<<${line})" in
AM)     sed -i "/${line}/ s/.\(.:..\).*/\1/" plop
        ;;
PM)    sed -i "/${line}/ s//date -d \"${line}\" +%R/e" plop
        ;;
esac
done < plop

$ cat plop
Wed 11/21/2007
05:12 PM
25
Wed 11/21/2007
05:14 PM
26
Thu 11/22/2007
09:04 AM
8

$ ./foo.sh
$ cat plop
Wed 11/21/2007
17:12
25
Wed 11/21/2007
17:14
26
Thu 11/22/2007
9:04
8
;-))

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !