find : affichage avec les caractères d'échappements? - Codes et scripts - Linux et OS Alternatifs
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.
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` |
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` |
Mais cela ne fonctionne toujours pas :
cp: ne peut évaluer `./ile': Aucun fichier ou répertoire de ce type |
Pourtant la commande "find $rep_source -iname *.JPG | sed -e s/\ /\\\\\ /g" renvoie bien :
./CIMG1853.JPG |
Je vois pas comment faire autrement la...
Marsh Posté le 01-02-2006 à 19:46:24
ReplyMarsh Posté le 02-02-2006 à 16:39:51
Reply
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