Bonjour, j'ai des fichiers qui contiennent des lignes de la forme
11201509180811G
EUX11_002-2015/09/19 9:23:13.4 0
2015/09/19 15:23:07.0
2015/09/18 8:00:00.0 2015/09/19 8:00:00.0 1
2015/09/19 9:23:13.4 21601.68 21592.96
Dans ces lignes je voudrai d'abord détecter les lignes qui contiennent une date/heure (comme celle-ci 2015/09/18 8:00:00.0).
Ensuite, je veux vérifier que l'heure est bien écrite sur 2 chiffres. Par exemple "9:23:13.4" devrait se transformer en "09:23:13.4". Par contre "2015/09/19 15:23:07.0" ne doit pas se transformer en "2015/09/19 015:23:07.0".
J'imagine que le meilleur outil pour faire ça est un "sed" avec l'expression régulière qui va bien mais j'avoue ne rien y comprendre et à chaque fois que j'essaie d'étudier comment ça marche, je m'arrache les cheveux …
J'imagine qu'il faut chercher le motif "/xx_x:" où x est un chiffre entre 0 et 9 et "_" désigne un blanc. Normalement le nombre de caractères entre "/" et ":" doit être de 5 ; s'il est de 4 alors c'est qu'il manque un 0.
Donc si une bonne âme pourrait me venir en aide, je lui en serais très reconnaissante.
Merci d'avance.
# Proposition
Posté par Benoît Sibaud (site web personnel) . Évalué à 9.
[^] # Re: Proposition
Posté par palm123 (site web personnel) . Évalué à 5.
ou
sed 's%\(/[0-9][0-9]\) \([0-9]\):%\1 0\2:%g' data
ウィズコロナ
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.