(Courriels de diversion: <elucubrer@tuerent-decaissements.com> <regaleraient@devêtir-connaisseurs.com> <hargneuse@attables-muscs.com> <etroitement@aberrante-couses.com> <check-lists@mandariniers-malfaiteurs.com> <meteorologique@demanche-croquer.com> <delicatesses@congeneres-emeche.com> <satisfaisant@suppleerent-enjambera.com> <grossissons@accumulateurs-indifferemment.com> <eluciderez@cueillais-malversation.com> )
Bonsoir à tous. Je bute sur un problème assez bête : je voudrais renommer toute une arborescence avec des noms de fichiers et de répertoire en minuscules exclusivement. Je pensais m'en sortir assez simplement à coup de find et d'awk, mais ce n'est pas si simple. Je suis en csh, et voici ce que j'ai fait pour regarder : kiswa 781% foreach i ( `find . -print` ) foreach? set n=`echo $i | awk '{print tolower()'}` foreach? echo mv $i $n foreach? end mv . . mv ./Components ./components mv ./Components/Button.xml ./components/button.xml mv ./Components/Geometries ./components/geometries mv ./Components/Geometries/Textures ./components/geometries/textures mv ./Components/Geometries/Textures/Button.png ./components/geometries/textures/button.png mv ./Components/Geometries/Button.wrl ./components/geometries/button.wrl [...] On voit bien qu'avec un truc comme ça, ça ne peut pas marcher. Utiliser l'option -depth ne règle pas plus le problème parce que tout le chemin est affiché en minuscule de toutes façons. J'avais bien envie de l'écrire uniquement avec find, mais je ne sais pas comment m'y prendre, car il faudrait que find soit capable d'oublier ou de se souvenir de ce qu'il vient de faire, sans boucler et tout ça. En essayant de simplement faire afficher le résultat transformé par find, ça ne fonctionne pas : kiswa 791% find . -exec echo {} \| awk '{print tolower()}' \; . | awk {print tolower()} ./Components | awk {print tolower()} ./Components/Button.xml | awk {print tolower()} ./Components/Geometries | awk {print tolower()} ./Components/Geometries/Textures | awk {print tolower()} ./Components/Geometries/Textures/Button.png | awk {print tolower()} ./Components/Geometries/Button.wrl | awk {print tolower()} [...] Je ne sais pas comment donner une entrée à awk sans faire un fichier ni un pipe, mais il va bien falloir lui donner le nom du fichier courant à manger... Et il faut encore après ça faire un mv, en espérant que find est bien programmé pour gérer ce genre de cas... Si quelqu'un a une solution, même différente, je suis preneur. Les solutions doivent utiliser des outils standards Unix, et ne pas utiliser d'options spécifiques aux outils GNU, car ils ne sont pas forcément installés sur ma cible (IRIX 6.5). Enfin, vous pouvez les donner pour la postérité bien sûr, mais ça ne m'aidera pas beaucoup ;-) Merci d'avance. -- tharibo @@ nekeme POINT net http://www.nekeme.net : Promouvoir le libre ludique "Le temps ne fait rien à l'affaire, quand on est con, on-est-con !" -- Georges Brassens -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>