Rechercher et remplacer chaine de caractères

Résolu/Fermé
linkromain Messages postés 70 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 13 janvier 2012 - 13 janv. 2012 à 18:45
linkromain Messages postés 70 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 13 janvier 2012 - 13 janv. 2012 à 19:06
Bonjour,

Je cherche à faire une recherche et à remplacer une chaine de caractères précise dans tous mes .js avec la commande suivante :

find . -name "*.js" -type f -exec sed -i "s/var _0x4470/\//substitution_hack/g" {} \;

Cependant, cette dernière ne fonctionne pas et me renvoie l'erreur suivante :

sed: -e expression #1, char 18: unknown option to 's'

Quelqu'un pourrait il m'aider et me dire où ça bloque, s'il vous plait ?

Merci d'avance.

A voir également:

4 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 janv. 2012 à 18:47
Salut,

Que veux-tu remplacer au juste ? Montres-nous un exemple concret du motif recherché dans son contexte.
0
linkromain Messages postés 70 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 13 janvier 2012
13 janv. 2012 à 18:51
Merci de ton retour.

Je veux rechercher la chaine "var _0x4470" dans tous les fichiers .js qui se trouve dans plusieurs répertoires et pas le répertoire courant uniquement.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 janv. 2012 à 18:55
Oui ça j'avais compris, mais comme "sed" te sort une erreur par rapport à ta syntaxe, notamment un slash protégé par un anti-slah, je pensais qu'il y avait autre chose !!??

Sinon si ce n'est que ça :

sed -i "s/var _0x4470/substitution_hack/g"
0
linkromain Messages postés 70 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 13 janvier 2012
13 janv. 2012 à 18:58
Mon anti-slash était surtout là pour remplacer ma chaine "var _0x4470" par ""//substitution_hack" étant donné que je souhaite mettre un caractère spécial.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 janv. 2012 à 19:01
Suffit de remplacer le délimiteur par défaut par un caractère quelconque ne se trouvant pas dans les chaines de substitution et de remplacement :

sed -i "s#var _0x4470#//substitution_hack#g"
0
linkromain Messages postés 70 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 13 janvier 2012
13 janv. 2012 à 19:02
en effet je pensais au "#".

Merci je test de suite .
0
linkromain Messages postés 70 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 13 janvier 2012
13 janv. 2012 à 19:06
Merci, c'était bien ça qui me bloquait.

En espérant que ce bout de code en aide d'autres.

Merci encore.
0