find : affichage avec les caractères d'échappements?

find : affichage avec les caractères d'échappements? - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 01-02-2006 à 11:37:06    

Bonjour,
 
J'utilise find pour un script, je voudrais qu'il me renvoie la liste des fichiers trouvés avec les caractères d'échappements, je n'ai pas trouvé de solution encore...
 
Pour l'instant j'ai :

./CIMG1853.JPG
./l'ile tortue.jpg
./aqua tortue.jpg


Et je veux :

./CIMG1853.JPG
./l\'ile\ tortue.jpg
./aqua\ tortue.jpg


 
Quelqu'un aurait-il une solution? Existe-t-il une fonction pour ca? (comme addslashes en PHP)
 
Merci.


Message édité par gothico le 01-02-2006 à 12:34:55
Reply

Marsh Posté le 01-02-2006 à 11:37:06   

Reply

Marsh Posté le 01-02-2006 à 15:55:13    

Je ne connais pas d'option de ce genre dans find. Donc à priori, sed :
find | sed 's/ /\\ /g'
 
Il ya peut-être un autre moyen tordu en utilisant l'option -printf de find et l'option --quoting-style de GNU/ls.


---------------
Viendez vous battre à Prologin \o/
Reply

Marsh Posté le 01-02-2006 à 15:58:17    

...
Evidemment l'exemple n'échappe que les espaces. Pour échapper tous les caractères qui peuvent poser problème c'est un peu plus long. ^_^;


---------------
Viendez vous battre à Prologin \o/
Reply

Marsh Posté le 01-02-2006 à 16:43:41    

Vi merci, c'est finalement ce que j'ai utilisé, mais cela ne résoud pas mon problème....
 
Je met une liste d'images d'un répertoire dans une variable pour en faire une copie :

all_jpg=`find $rep_source -iname *.JPG`
cp $all_jpg $CHEMIN


 
Ce ne fonctionnait pas à cause des renvoies d'espaces de find, c'est pourquoi j'ai demandé ici comment je pouvais faire.
 
Voila ma solution avec sed :

all_jpg=`find $rep_source -iname *.JPG | sed -e s/\ /\\\\\ /g`
cp $all_jpg $CHEMIN



Mais cela ne fonctionne toujours pas :

cp: ne peut évaluer `./ile': Aucun fichier ou répertoire de ce type
cp: ne peut évaluer `tortue.jpg': Aucun fichier ou répertoire de ce type
cp: ne peut évaluer `./aqua': Aucun fichier ou répertoire de ce type
cp: ne peut évaluer `tortue.jpg': Aucun fichier ou répertoire de ce type


 
Pourtant la commande "find $rep_source -iname *.JPG | sed -e s/\ /\\\\\ /g" renvoie bien :  

./CIMG1853.JPG
./ile\ tortue.jpg
./aqua\ tortue.jpg


 
Je vois pas comment faire autrement la...   :cry:


Message édité par gothico le 01-02-2006 à 17:09:25
Reply

Marsh Posté le 01-02-2006 à 19:22:34    

et en faisant cp "$all_jpg" $CHEMIN  ?

Reply

Marsh Posté le 01-02-2006 à 19:46:24    

find $rep_source -iname *.JPG -exec cp {} $CHEMIN \;

Reply

Marsh Posté le 02-02-2006 à 16:39:51    

matafan a écrit :

find $rep_source -iname *.JPG -exec cp {} $CHEMIN \;


 :love:  :love:  :love:  
 
 
 [:m@nu68]  [:m@nu68]  [:m@nu68]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed