$ str='xxx [06/Apr/2015:15:34:30 +0200] xxx yyy zzz'
$ mois=( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )
$ declare -A M
$ for m in "${mois[@]}"; do M[$m]=$((++n)); done
$ IFS=' ]:[' read -a ar <<<"$str"
$ IFS='/' read -a dt <<<"${ar[1]}"
$ dt[1]=${M[${dt[1]}]}
$ echo "${ar[0]} [$(IFS='/'; echo "${dt[*]}") ${ar[2]}:${ar[3]}:${ar[4]}] ${ar[@]:6}"
xxx [06/4/2015 15:34:30] xxx yyy zzz
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
$ str='xxx [06/Apr/2015:15:34:30 +0200] xxx yyy zzz'
$ mois=( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )
$ declare -A M
$ for m in "${mois[@]}"; do M[$m]=$((++n)); done
$ IFS=' ]:[' read -a ar <<<"$str"
$ IFS='/' read -a dt <<<"${ar[1]}"
$ dt[1]=${M[${dt[1]}]}
$ echo "${ar[0]} [$(IFS='/'; echo "${dt[*]}") ${ar[2]}:${ar[3]}:${ar[4]}] ${ar[@]:6}"
xxx [06/4/2015 15:34:30] xxx yyy zzz
Merci, ca devrais être un peu mieux. Il va juste falloir que je modifie un peut ça car je crois qu'il me faut 04 (pour le reste du traitement) pour le mois et que 4 marchera pas
Edit: ca devrait marcher même sans le 0 mais juste pour l'affichage ca me fait bizarre parce que j'ai des fichier qui ont déjà le bon format de date (avec 0)
Du coup j'ai rajouter ça
if ((${dt[1]} < 10 )); then
dt[1]="0${dt[1]}"
fi
Edit 2: Mon script complet met entre 2min12 et 1min42 a traiter un fichier et avec ce changement pour la date le script traite le même fichier entre 2min2 et 1min42. Au final je vais garder ta version, elle est quand même plus lisible et en moyenne plus rapide que l'autre.
ça fait la même chose que ton if, mais en "écriture" arithmétique : si le nombre de chiffres est inférieur à 2, alors une variable c est créée valant 0 (zéro).
- Edité par dantonq 22 mai 2015 à 11:35:01
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
ça fait la même chose que ton if, mais en "écriture" arithmétique : si le nombre de chiffres est inférieur à 2, alors une variable c est créée valant 0 (zéro).
- Edité par dantonq il y a 14 minutes
Ok merci
Remplacer le format d'une date
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique