Bonsoir,

voilà j'ai un petit problème sur un script que j'aimerais bien résoudre, mais apparemment la solution m'échappe...

Je cherche à substituer la chaîne de caractère particulière : \xe8\x5c\x31\xf9\xff par celle-là : \x90\x90\x90\x90\x90

mais mon fichier reste tel quel, malgré que je n'ai pas d'erreur...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
#!/bin/sh
 
toto="\xe8\x5c\x31\xf9\xff"
dada="/home/tux/test.txt"
for x in $toto;do
echo $x
sed -i 's/$x/\x90\x90\x90\x90\x90/g' $dada
done
le contenu de test.txt contient seulement la ligne : \xe8\x5c\x31\xf9\xff

le résultat de sed me renvoie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
./toto.sh
found \xe8\x5c\x31\xf9\xff

si je fais un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 sed -e  's/$x/\x90\x90\x90\x90\x90/g' $dada
j'ai en retour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$ ./toto.sh
found \xe8\x5c\x31\xf9\xff
\xe8\x5c\x31\xf9\xff
donc le fichier reste inchangé. Une aide serait la bienvenue. Merci par avance.