#1 Le 16/12/2024, à 22:31
- Kabak_85
[RESOLU] SED : rechercher et remplacer chaine contenant &
Bonjour,
Dans un script sh, je cherche à remplacer les valeurs à la fin d'une chaîne de caractère du type "ABC_DEF=1&2" par une autre chaîne du type "ABC_DEF=4&5"
J'ai essayé ceci sans succès :
sed 's/"ABC_DEF=1&2"/"ABC_DEF=4&5"/g' fichier.ini
J'ai tenté un voir deux anti-slash devant les esperluettes mais pas plus de succès. La sortie sur le terminal ne montre aucun changement. Qu'ai-je loupé ?
Merci par avance.
Dernière modification par Kabak_85 (Le 17/12/2024, à 15:11)
Hors ligne
#2 Le 16/12/2024, à 22:40
- pingouinux
Re : [RESOLU] SED : rechercher et remplacer chaine contenant &
Bonsoir,
sed 's/"ABC_DEF=1&2"/"ABC_DEF=4\&5"/g' fichier.ini
Hors ligne
#3 Le 17/12/2024, à 02:49
- Kabak_85
Re : [RESOLU] SED : rechercher et remplacer chaine contenant &
Merci pour la confirmation.
J'avais essayé cette combinaison mais elle n'avait rien donné.
J'ai refait un essai en copiant le contenu du fichier dans un nouveau document et ça fonctionne. Il semble qu'il y a un souci d'encodage (UTF-16 ?).
Il va falloir que je trouve une alternative.
Dernière modification par Kabak_85 (Le 17/12/2024, à 02:49)
Hors ligne
#4 Le 17/12/2024, à 06:02
- sputnick
Re : [RESOLU] SED : rechercher et remplacer chaine contenant &
& dans la partie remplacement est ce qui a matché dans la partie gauche
Il existe un tunnel obscur dans la lumière infinie. Lao-Tseu
https://sputnick.fr
Hors ligne
#5 Le 17/12/2024, à 09:07
- serged
Re : [RESOLU] SED : rechercher et remplacer chaine contenant &
Et en échappant les 2 esperluettes ?
sed 's/"ABC_DEF=1\&2"/"ABC_DEF=4\&5"/g' fichier.ini
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#6 Le 17/12/2024, à 14:49
- lynn
Re : [RESOLU] SED : rechercher et remplacer chaine contenant &
Sans les guillemets, ça fonctionne
sed 's/ABC_DEF=1&2/ABC_DEF=4\&5/g'
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#7 Le 17/12/2024, à 15:10
- Kabak_85
Re : [RESOLU] SED : rechercher et remplacer chaine contenant &
Oui, la version de pingouinux sans les guillemets fonctionne.
Il faut juste que je trouve comment contourner le problème de codage UTF-16 qui semble être la cause de mes problèmes.
Hors ligne
#8 Le 17/12/2024, à 18:16
- Kabak_85
Re : [RESOLU] SED : rechercher et remplacer chaine contenant &
Voila la solution que j'ai adoptée.
iconv -f UTF-16 -t ISO-8859-1 ori.ini | sed 's/ABC_DEF=1&2/ABC_DEF=4\&5/g' | iconv -f ISO-8859-1 -t UTF-16 -o mod.ini
Il y en a sans doute une meilleure solution pour ne pas détruire certains caractères mais d'après la commande cmp, ça semble fonctionner dans mon cas.
Dernière modification par Kabak_85 (Le 17/12/2024, à 18:18)
Hors ligne