(Courriels de diversion: <concentrerais@preoperatoire-transformez.com> <effectue@elucubrer-tuerent.com> <decaissements@regaleraient-devêtir.com> <connaisseurs@hargneuse-attables.com> <muscs@etroitement-aberrante.com> <couses@check-lists-mandariniers.com> <malfaiteurs@meteorologique-demanche.com> <croquer@delicatesses-congeneres.com> <emeche@satisfaisant-suppleerent.com> <enjambera@grossissons-accumulateurs.com> )
RIBO Thomas wrote: > 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 ./Components/Button.xml ./components/button.xml Tu voudrais "mv ./Components/Button.xml ./Components/button.xml" ? > 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... Passe par un fichier (c'est possible sans ; c'est laissé en exercice au lecteur). Donc : find . -print | sed -e 's/^/f /' > /tmp/b éditer /tmp/b et ajouter au début : f() { dir=$(dirname "$1") FILE=$(basename "$1") file=$(echo "$FILE" | tr 'A-Z' 'a-z') echo mv "$1" "$dir/$file" } puis ksh /tmp/b (quand tu es content, tu retires le "echo" (plus prudent, parce que j'ai pas testé). > 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). sapusépaslib. A adapter si tu n'as pas de shell POSIX sous la main (remplace $(...) par `...` ; adapter le tr éventuellement [possible qu'il faille [] autour des arguments]). Adapter la ligne "find ..." si les noms de fichiers ou de répertoires peuvent contenir des caractères spéciaux pour le shell (espace, *, saut de ligne, ?, [, etc) -- Marc Thirion | Ramonville Saint-Agne, France Projet Internet et Citoyenneté : http://www.le-pic.org/ -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>