Sed et carractere '
Résolu
Abraham
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour a tous,
J'ai un probleme avec la substitution de carractere sed. Je serais tres reconnaissant a tous ceux qui voudront bien consacrer un peu de leur temps pour eclairer ma lanterne.
Départ un fichier ls.txt contenant ceci (une arborescence avec des fichiers *.swf, issus d'un site aspiré).
Afin de pouvoir traiter automatiquement ce gigantesque bazar dont on a ici qu'
une petite partie en vue de test j'aimerais proteger tous les caracteres sepciaux suceptibles
de me generer une erreur. J'arrive a proteger les espaces par \ et j'aimerais faire de meme pour '.
Et c'est la que ca coince.
./Creux/Oscillateur Harmonique/animation-oscillateur-harmonique_fichiers/oscillateur-harmonique.swf
./Creux/Oscillateur Harmonique/l'oscillateur harmonique/oscillateur-harmonique.swf
sed 's/\ /\\\ /g' ls.txt
./Creux/a/PrincipeDeLAlternateur.swf
./Creux/b/Fourrier/fourier1_fichiers/fourier.swf
./Creux/b/archi_ordi.swf
./Creux/Oscillateur\ Harmonique/animation-oscillateur-harmonique_fichiers/oscillateur-harmonique.swf
./Creux/Oscillateur\ Harmonique/l'oscillateur\ harmonique/oscillateur-harmonique.swf
sed -e "s/'/_/g" ls.txt
./Creux/Oscillateur Harmonique/animation-oscillateur-harmonique_fichiers/oscillateur-harmonique.swf
./Creux/Oscillateur Harmonique/l_oscillateur harmonique/oscillateur-harmonique.swf[nicolas@localhost Filtre-swf]$ sed -e "s/'/_/g" ls.txt
en effet si je tape la commande sed -e "s/'/\\'/g" ls.txt cela ne marche pas.
je desirerais avoir une sortie ./Creux/Oscillateur\ Harmonique/l\'oscillateur\ harmonique/oscillateur-harmonique.swf
or j'ai ceci
./Creux/Oscillateur Harmonique/animation-oscillateur-harmonique_fichiers/oscillateur-harmonique.swf
./Creux/Oscillateur Harmonique/l'oscillateur harmonique/oscillateur-harmonique.swf
Si quelqu'un avait une idée et/ou une explication je lui en serais tres reconnaissant
En vous remerciant d'avance
Abraham
J'ai un probleme avec la substitution de carractere sed. Je serais tres reconnaissant a tous ceux qui voudront bien consacrer un peu de leur temps pour eclairer ma lanterne.
Départ un fichier ls.txt contenant ceci (une arborescence avec des fichiers *.swf, issus d'un site aspiré).
Afin de pouvoir traiter automatiquement ce gigantesque bazar dont on a ici qu'
une petite partie en vue de test j'aimerais proteger tous les caracteres sepciaux suceptibles
de me generer une erreur. J'arrive a proteger les espaces par \ et j'aimerais faire de meme pour '.
Et c'est la que ca coince.
./Creux/Oscillateur Harmonique/animation-oscillateur-harmonique_fichiers/oscillateur-harmonique.swf
./Creux/Oscillateur Harmonique/l'oscillateur harmonique/oscillateur-harmonique.swf
sed 's/\ /\\\ /g' ls.txt
./Creux/a/PrincipeDeLAlternateur.swf
./Creux/b/Fourrier/fourier1_fichiers/fourier.swf
./Creux/b/archi_ordi.swf
./Creux/Oscillateur\ Harmonique/animation-oscillateur-harmonique_fichiers/oscillateur-harmonique.swf
./Creux/Oscillateur\ Harmonique/l'oscillateur\ harmonique/oscillateur-harmonique.swf
sed -e "s/'/_/g" ls.txt
./Creux/Oscillateur Harmonique/animation-oscillateur-harmonique_fichiers/oscillateur-harmonique.swf
./Creux/Oscillateur Harmonique/l_oscillateur harmonique/oscillateur-harmonique.swf[nicolas@localhost Filtre-swf]$ sed -e "s/'/_/g" ls.txt
en effet si je tape la commande sed -e "s/'/\\'/g" ls.txt cela ne marche pas.
je desirerais avoir une sortie ./Creux/Oscillateur\ Harmonique/l\'oscillateur\ harmonique/oscillateur-harmonique.swf
or j'ai ceci
./Creux/Oscillateur Harmonique/animation-oscillateur-harmonique_fichiers/oscillateur-harmonique.swf
./Creux/Oscillateur Harmonique/l'oscillateur harmonique/oscillateur-harmonique.swf
Si quelqu'un avait une idée et/ou une explication je lui en serais tres reconnaissant
En vous remerciant d'avance
Abraham
Configuration: Linux Mandriva 2007 Firefox 2.0.0.2 shell = /bin/bash Bash version = 3.1.17(2)-release
4 réponses
-
Salut,
Essaie comme ça :[jp@MDK tmpfs]$ echo $var ./Creux/Oscillateur\ Harmonique/l'oscillateur\ harmonique/oscillateur-harmonique.swf [jp@MDK tmpfs]$ A="\\\'" [jp@MDK tmpfs]$ echo $A \\' [jp@MDK tmpfs]$ echo $var | sed "s/'/"$A"/" ./Creux/Oscillateur\ Harmonique/l\'oscillateur\ harmonique/oscillateur-harmonique.swf [jp@MDK tmpfs]$
;-)
-
-
Mille merci, ca faisait un temps fou que je bloquais sur ce probleme,
Ca marche nickel, y a plus ka s'attaquer a la suite ;-).
Abraham -
De rien ;-))
En me penchant un peu plus sur le problème, il semblerait que cette solution marche bien aussi (sans avoir recours à une variable) :[jp@MDK tmpfs]$ echo $var ./Creux/Oscillateur\ Harmonique/l'oscillateur\ harmonique/oscillateur-harmonique.swf [jp@MDK tmpfs]$ echo $var | sed "s/'/\\\'/" ./Creux/Oscillateur\ Harmonique/l\'oscillateur\ harmonique/oscillateur-harmonique.swf [jp@MDK tmpfs]$
;-))