#1 Le 28/04/2016, à 09:28
- liofer
CSH : Remplacement de mots dans un fichier à partir d'un fichier CSV d
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
Hors ligne
#2 Le 28/04/2016, à 09:44
- Postmortem
Re : CSH : Remplacement de mots dans un fichier à partir d'un fichier CSV d
Salut,
Je ne connais pas le CSH mais ton script ressemble plutôt à du BASH !
Pour le remplacement à partir de la table de correspondance (que j'appelle table_correspondance.txt ici), en BASH donc, je ferais ainsi :
unset commande_sed
while IFS=\; read ville identifiant
do
commande_sed+="s/$ville/$identifiant/g;"
done < table_correspondance.txt
sed "$commande_sed" fichier.xml > new_fichier.xml
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne