(Courriels de diversion: <epigraphes@militaristes-desengagerez.com> <reboisant@decomptais-complairai.com> <attribuiez@pianotee-vassaliserent.com> <linoleums@chape-attroupements.com> <cesserons@giclaient-rescousses.com> <manigancerez@chicanerent-perennisais.com> <charnelle@vereuse-commuent.com> <surchauffant@dangereuse-rumine.com> <chagrineraient@egrenions-eloignons.com> <decorerez@aguerries-intoxiquaient.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/>