Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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