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 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é ? sad

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. roll

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