Formatage de date et heure avec AWK [Résolu/Fermé]

Signaler
Messages postés
193
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
13 juin 2021
-
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
-
Bonjour,

j'ai le FILE1 séparateur point virgule ci dessous avec le format de date 20140107213507.0Z que je veux transformer en 2014/01/07 21:35:07.0Z



20140107213507.0Z;BSCYAKRO4 Abis TP 63[_63];174810,BSC-TRANS [101] AIS [1];20140107213507.1Z
20140107213506.3Z;BSCYAKRO4 Abis TP 63[_63];174808,BSC-TRANS [101] AIS [1];20140107213506.5Z
20140107213457.9Z;BSCYAKRO4 Abis TP 63[_63];174806,BSC-TRANS [101] AIS [1];20140107213457.9Z
20140107213452.6Z;BSCYAKRO4 Abis TP 63[_63];174804,BSC-TRANS [101] AIS [1];20140107213452.8Z
20140107213448.6Z;BSCYAKRO4 Abis TP 63[_63];174802,BSC-TRANS [101] AIS [1];20140107213448.7Z
20140107213448.1Z;BSCYAKRO4 Abis TP 63[_63];174801,BSC-TRANS [101] BER-10E-6 [7];20140107213448.6Z
20140107213448.7Z;BSCYAKRO4 Abis TP 63[_63];174803,BSC-TRANS [101] BER-10E-6 [7];20140107213929.3Z
20140107213447.8Z;BSCYAKRO4 Abis TP 63[_63];174800,BSC-TRANS [101] AIS [1];20140107213448.1Z
20140107213442.0Z;BSCYAKRO4 Abis TP 63[_63];174799,BSC-TRANS [101] BER-10E-6 [7];20140107213447.8Z
20140107213441.7Z;BSCYAKRO4 Abis TP 63[_63];174798,BSC-TRANS [101] AIS [1];20140107213442.0Z
20140107213435.0Z;BSCYAKRO4 Abis TP 63[_63];174797,BSC-TRANS [101] BER-10E-6 [7];20140107213441.7Z


en sortit j'aurai le FIle ci-dessous avec le 1er champ de FILE1 en position deux (en gras )

BSCYAKRO4 Abis TP 63[_63];174810,BSC-TRANS [101] AIS [1];2014/01/07 21:35:07.0Z;2014/01/07 21:35:07.1Z
BSCYAKRO4 Abis TP 63[_63];174808,BSC-TRANS [101] AIS [1];2014/01/07 21:35:06.3Z;2014/01/07 21:35:06.5Z
BSCYAKRO4 Abis TP 63[_63];174806,BSC-TRANS [101] AIS [1];2014/01/07 21:34:57.9Z;2014/01/07 21:34:57.9Z
BSCYAKRO4 Abis TP 63[_63];174804,BSC-TRANS [101] AIS [1];2014/01/07 21:34:52.6Z;2014/01/07 21:34:52.8Z
BSCYAKRO4 Abis TP 63[_63];174802,BSC-TRANS [101] AIS [1];2014/01/07 21:34:48.6Z;2014/01/07 21:34:48.7Z
BSCYAKRO4 Abis TP 63[_63];174801,BSC-TRANS [101] BER-10E-6 [7];2014/01/07 21:34:48.1Z;2014/01/07 21:34:48.6Z
BSCYAKRO4 Abis TP 63[_63];174803,BSC-TRANS [101] BER-10E-6 [7];2014/01/07 21:34:48.7Z;2014/01/07 21:39:29.3Z
BSCYAKRO4 Abis TP 63[_63];174800,BSC-TRANS [101] AIS [1];2014/01/07 21:34:47.8Z;2014/01/07 21:34:48.1Z
BSCYAKRO4 Abis TP 63[_63];174799,BSC-TRANS [101] BER-10E-6 [7];2014/01/07 21:34:42.0Z;2014/01/07 21:34:47.8Z
BSCYAKRO4 Abis TP 63[_63];174798,BSC-TRANS [101] AIS [1];2014/01/07 21:34:41.7Z;2014/01/07 21:34:42.0Z
BSCYAKRO4 Abis TP 63[_63];174797,BSC-TRANS [101] BER-10E-6 [7];2014/01/07 21:34:35.0Z;2014/01/07 21:34:41.7Z


merci pour votre aide

cdlt


3 réponses

Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 303
hello
$ awk 'BEGIN {FS=OFS=";"; S="/"; D=":"} {print $2, substr($1, 1, 4) S substr($1, 5, 2) S substr($1, 7, 2) " " substr($1, 9, 2) D substr($1, 11, 2) D substr($1, 13, 5), substr($4, 1, 4) S substr($4, 5, 2) S substr($4, 7, 2) " " substr($4, 9, 2) D substr($4, 11, 2) D substr($4, 13, 5)}' fichier
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:35:07.0Z;2014/01/07 21:35:07.1Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:35:06.3Z;2014/01/07 21:35:06.5Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:57.9Z;2014/01/07 21:34:57.9Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:52.6Z;2014/01/07 21:34:52.8Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:48.6Z;2014/01/07 21:34:48.7Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:48.1Z;2014/01/07 21:34:48.6Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:48.7Z;2014/01/07 21:39:29.3Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:47.8Z;2014/01/07 21:34:48.1Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:42.0Z;2014/01/07 21:34:47.8Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:41.7Z;2014/01/07 21:34:42.0Z
BSCYAKRO4 Abis TP 63[_63];2014/01/07 21:34:35.0Z;2014/01/07 21:34:41.7Z
$
1
Merci

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

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 218
Salut,

Extrait :

The strftime() function allows you to easily turn a timestamp into human-readable information. It is similar in nature to the sprintf() function (see String Functions), in that it copies nonformat specification characters verbatim to the returned string, while substituting date and time values for format specifications in the format string. 

Utilisateur anonyme
salut,

malheureusement,
strftime
n'est d'aucune utilité dans ce cas :(
20140107213507.0Z
n'est pas un timestamp, c'est la date concaténée, sans séparateurs.
il me semble qu'il n'est possible que de découper le champs à coups de
substr()
successifs, et de réassemblé au format souhaité.
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 218
Salut QQCQCPQ,

Oups, effectivement, je n'avais même pas fait gaffe ;-[

Merchi.
Messages postés
193
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
13 juin 2021

bonjour a tous

Merci pour votre aide.

@Dubcek : j ai juste ajouté
";"$3
pour insérer le champ 3 du fichier original et ca marche très bien, j obtiens le resulat ci-dessous:



BSCYAKRO4 Abis TP 63[_63];174810,BSC-TRANS [101] AIS [1];2014/01/07 21:35:07.0Z;2014/01/07 21:35:07.1Z
BSCYAKRO4 Abis TP 63[_63];174808,BSC-TRANS [101] AIS [1];2014/01/07 21:35:06.3Z;2014/01/07 21:35:06.5Z
BSCYAKRO4 Abis TP 63[_63];174806,BSC-TRANS [101] AIS [1];2014/01/07 21:34:57.9Z;2014/01/07 21:34:57.9Z
BSCYAKRO4 Abis TP 63[_63];174804,BSC-TRANS [101] AIS [1];2014/01/07 21:34:52.6Z;2014/01/07 21:34:52.8Z
BSCYAKRO4 Abis TP 63[_63];174802,BSC-TRANS [101] AIS [1];2014/01/07 21:34:48.6Z;2014/01/07 21:34:48.7Z

merci à tous infiniment


cdlt.