AWK code explication
Résolu/Fermé
Tuoxy
Messages postés
2
Date d'inscription
samedi 10 décembre 2022
Statut
Membre
Dernière intervention
10 décembre 2022
-
Modifié le 13 déc. 2022 à 15:28
mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 - 15 déc. 2022 à 13:23
mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 - 15 déc. 2022 à 13:23
A voir également:
- AWK code explication
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
4 réponses
jee pee
Messages postés
40456
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 novembre 2024
9 420
10 déc. 2022 à 17:36
10 déc. 2022 à 17:36
Sinon, dans une expression régulière, tu pourrais utiliser T et Z comme séparateurs des 2 chaines recherchées.
gawk ' BEGIN { ev1="20211031T080000Z"; date1 = gensub(/(.+)T(.+)Z/, "\\1", "g", ev1); time1 = gensub(/(.+)T(.+)Z/, "\\2", "g", ev1); print date1, time1; }'
jee pee
Messages postés
40456
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 novembre 2024
9 420
Modifié le 10 déc. 2022 à 16:51
Modifié le 10 déc. 2022 à 16:51
Bonjour,
Tu as des contraintes sur les commandes à utiliser ? Car pourquoi sur une chaine de longueur fixe s’embêter avec une expression régulière, on peut utiliser un cut
ev1="20211031T080000Z" date1=`echo $ev1|cut -c 1-8`
Tuoxy
Messages postés
2
Date d'inscription
samedi 10 décembre 2022
Statut
Membre
Dernière intervention
10 décembre 2022
10 déc. 2022 à 17:45
10 déc. 2022 à 17:45
Merci beaucoup. Oui je ne pouvais pas utiliser cut sinon ça serait déjà fait.
jee pee
Messages postés
40456
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 novembre 2024
9 420
10 déc. 2022 à 17:49
10 déc. 2022 à 17:49
Avec comme base ta syntaxe, on peut avoir
gawk ' BEGIN { ev1="20211031T080000Z"; date1 = gensub(/^([0-9]{8}).*/, "\\1", "g", ev1) heure1 = gensub(/.*([0-9]{6}).$/, "\\1", "g", ev1) print date1, heure1; }'
mamiemando
Messages postés
33363
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
16 novembre 2024
7 801
15 déc. 2022 à 13:23
15 déc. 2022 à 13:23
En awk pur :
awk ' BEGIN { ts = "20211031T080000Z"; yyyymmdd = substr(ts, 1, 8); yyyy = substr(yyyymmdd, 1, 4); mm = substr(yyyymmdd, 5, 2); dd = substr(yyyymmdd, 7, 2); print yyyymmdd; print yyyy; print mm; print dd; }'