Rechercher et remplacer chaine de caractères [Résolu/Fermé]

Signaler
Messages postés
70
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
13 janvier 2012
-
Messages postés
70
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
13 janvier 2012
-
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.

4 réponses

Messages postés
35528
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
7 septembre 2020
5 399
Salut,

Que veux-tu remplacer au juste ? Montres-nous un exemple concret du motif recherché dans son contexte.
Messages postés
70
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
13 janvier 2012

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.
Messages postés
35528
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
7 septembre 2020
5 399
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"
Messages postés
70
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
13 janvier 2012

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.
Messages postés
35528
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
7 septembre 2020
5 399
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"
Messages postés
70
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
13 janvier 2012

en effet je pensais au "#".

Merci je test de suite .
Messages postés
70
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
13 janvier 2012

Merci, c'était bien ça qui me bloquait.

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

Merci encore.