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
A voir également:
- Sed et carractere '
- Carractere speciaux - Guide
- Caractères spéciaux : comment taper des |—[©\½→}… - Guide
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
4 réponses
Salut,
Essaie comme ça :
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
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) :
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]$;-))