Heure AM/PM en français

[Résolu/Fermé]
Signaler
Messages postés
61
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juillet 2011
-
 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

6 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 888
Salut,

man date
info date
$ date -d "09:00 PM" +%R
21:00
$ date -d "03:00 AM" +%l:%M
 3:00
;-))
11
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
61
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juillet 2011
5
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

Merci jipicy, c'est super.
Je me suis fais une machine virtuelle sous Ubuntu pour être compatible avec tes réponses ;-)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 888
J'ai bien une solution, mais elle est à base de "GNU sed" et je doute que ça marche sous Unix ;-((
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 888
De rien ;-))
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 888
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
;-))