|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Inscription : février 2006 Messages : 55 ![]() |
Bonjour à tous,
voilà mon souci : dans le cadre d'un problème que l'on m'a soumis, je cherche une solution pour renommer récursivement des noms de fichiers. Habituellement, j'utilise cette commande (ou dérivé) : Code :
Elle m'affiche 2 occurences à cause d'un retour à la ligne lorsqu'elle rencontre l'espace. Exemple : Code :
mv: ne peut évaluer `./test': Aucun fichier ou répertoire de ce type mv: ne peut évaluer `01.txt': Aucun fichier ou répertoire de ce type comment faire comprendre à "find" que c'est un seul et même fichier qu'il faut traiter ? j'ai parcouru le man mais, je l'avoue, sans grand résultat... Autre chose, en dehors d'une boucle "for", le résultat du "find" est correct... ./test 01.txt avec une boucle "for" : Code :
./test 01.txt Quelqu'un peut-il éclairer ma lanterne ? |
||||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
Le problème ne vient pas de find mais de for.
for utilise le séparateur par défaut pour identifier les noms de fichier dans la liste. Ce séparateur est défini par la variable IFS, qui par défaut contient un espace. En redéfinissant le séparateur, tu pourras récupérer tes noms de fichiers, sans tenir compte des espaces. Tous tes noms de fichiers commençant par ., tu peux faire : Code :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
||
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Frédéric Brugmans Informaticien multitâche Inscription : février 2005 Messages : 661 ![]() |
Je me permet de rajouter une petite "amélioration" qui ne tiens pas compte du fait que la recherche se fait à partir du répertoire " . "
Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 55 ![]() |
Merci pour ces réponses rapides
Probleme résolu, un petit peu à ma sauce...mais grace à vous. En fait, je declare la variable de cette façon IFS="" (donc null) et j'execute ma commande citée plus haut, et çà fonctionne. ps pour becket : le but n'est pas de travailler sur l'ensemble des fichiers du systeme. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com