Bonjour,
J'ai un fichier XML évolutif au sein duquel j'aimerais remplacer des noms de ville à partir d'identifiant contenu dans une table de correspondance. pour chaque occurence du fichier.
exemple : table de correspondance
PARIS;75000
BORDEAUX;33000
J'étais parti sur un sed mais j'ai beau creuser je ne trouve pas.
Quelqu'un peut il m'aider SVP.
A votre disposition si vous avez besoin d'informations complémentaires.
J'ai déjà la boucle
while read line
do
var1=$( echo "$line" | sed -n -E 's/.Station="(.)".Value./\1/ p' )
if [ "$var1" ] ; then
var2=$(echo "$var1" | tr a-z A-Z | cut -c 1-4)
echo -e "`{mathjax} line" | sed -n -E "s/`{var1}/${var2}/ g" >> new_fichier.xml
else
echo -e "$line" >> new_fichier.xml
fi
done < fichier.xml
Merci beaucoup
# petit algo à traduire en langage de ton choix
Posté par NeoX . Évalué à 3.
[^] # Re: petit algo à traduire en langage de ton choix
Posté par fearan . Évalué à 2.
si le fichier a beaucoup de ligne ça peut être optimisé
à noter que je n'ai pas 'protégé' la lecture du csv, si tu as des ';' entre quotte ils seront comptés comme séparateur, de même si tu as des villes du genre MAC et MACON, le deuxième ne sera pas remplacé, il convient de modifier le sed (typiquement si c'est en attribut "s/\"$ville\"/\"$cp\"/g".
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: petit algo à traduire en langage de ton choix
Posté par steph1978 . Évalué à 2.
Comment réagit sed face à un script de 36000 lignes par rapport à implémentation en lookup table ?
# pourquoi se compliquer la vie avec une boucle shell et un sed tordu
Posté par totof2000 . Évalué à 3.
alors que awk est fait pour ça ?
Dans la section BEGIN, tu crées ta table de correspondance et dans la boucle de traitement de ton flux, tu utilise la fonction gsub.
[^] # Re: pourquoi se compliquer la vie avec une boucle shell et un sed tordu
Posté par steph1978 . Évalué à 3.
Je plussois car awk est mon outil favori pour ce genre d'opérations.
Surtout qu'il possède une extension xml particulièrement puissant.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.