Formatage de date et heure avec AWK

Résolu/Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 13 janv. 2014 à 12:11
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 13 janv. 2014 à 15:27
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

dubcek Messages postés 18764 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 février 2025 5 624
Modifié par dubcek le 13/01/2014 à 14:58
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 422
13 janv. 2014 à 14:28
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. 

0
Utilisateur anonyme
13 janv. 2014 à 14:51
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é.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 422
13 janv. 2014 à 15:27
Salut QQCQCPQ,

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

Merchi.
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
13 janv. 2014 à 15:17
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.
0