Bonjour à tous !
Alors je poste sur le forum parce que je ne trouve pas ma solution à un problème avec la commande sed.
J'ai un fichier (contenu.xml) contenant :
J'aimerais remplacer toute cette chaine de caractère par autre chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <attributes id="attr_ch_SiuToDopDest"> <attribute name="receiveport" value="30020"/> <attribute name="receiveaddress" value="pc_siu"/> <attribute name="idnoid" value="1"/> <attribute name="buffermaximum" value="65535"/> <attribute name="buffersend" value="65535"/> </attributes>
Pour celà, j'ai fait ceci :
Celà ne fonctionne pas , comme si il ne trouvait pas dans mon fichier la chaine que je lui indique, ce qui est vraiment bizarre est que lorsque
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 chaine_avant1='<attributes id="attr_ch_SiuToDopDest"> <attribute name="receiveport" value="30020"/> <attribute name="receiveaddress" value="pc_siu"/>\n<attribute name="idnoid" value="1"/>\n<attribute name="buffermaximum" value="65535"/> <attribute name="buffersend" value="65535"/>\n</attributes>' chaine_apres1='COUCOU' sed -i "s#$chaine_avant1 #$chaine_apres1 #g" $contenu.xml;, Celà fonctionne..
Code : Sélectionner tout - Visualiser dans une fenêtre à part chaine_avant1='<attributes id="attr_ch_SiuToDopDest"> <attribute name="receiveport" value="30020"/>'
Quelqu'un aurait-il une idée ?
Merci de vos réponses !
Edit : J'ai retiré les espace sur ma commande :
Mais ce sont clairement les retours chariots qui posent problèmes, et impossible pour moi de les supprimer. Donc je ne vois pas comment faire, si quelqu'un peut m'aider !
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -i "s#$chaine_avant1#$chaine_apres1#g" $contenu.xml;
Merci
Partager