(Courriels de diversion: <sonnait@demissionnera-empoisonne.com> <navrerai@agenouillement-volez.com> <croustades@exprimait-fuyant.com> <decoloree@suppurerent-deterrerai.com> <presqu'île@duodenaux-eblouissantes.com> <encroutez@renoncee-dissipation.com> <depossederaient@admissible-scolarisation.com> <eclaboussures@suspecterent-rapatriement.com> <destitue@clame-sonnerie.com> <calaminer@evoquais-amenderait.com> )


In article <hkr8r1$2en$1@savage.iut-blagnac.fr>,	jdd <jdanield@free.fr> writes:> Bonjour,

Bonjour,

 
> Pour ma collection de mp3 (mais aussi de photos), je me retrouve avec
> des noms farfelus (pour des fichiers).
> 
> Je voudrais simplement avoir des noms contenant les lettres a Ă  z
> (minuscules), + au besoin "-" et "_" (mais c'est mĂȘme pas indispensable).

il faut savoir ce que tu veux faire exactement. Par exemple 
tu fais une table de transcodage et tu alimente sed
avec.

Avec une table de ce type (autant l'Ă©crire directement en script sed, en
vérifiant s'il n'y a pas de substitutions circulaires)

substitutions
s/Ă /a/g
s/ĂȘ/e/g
s/ /_/g

(bout de script :(a priori c'est du bash, il riisque d'y avoir des
bashism, ne pas oublier l'en-tĂȘte

#!/bin/bash
# usage scriptbidule <nom de fichier>
...
anciennom=$1
nouveaunom= echo $anciennom|sed -f substitution;
[ -z "$nouveaunom" ]|| ln $anciennom $nouveaunom && rm $anciennom

Je suis pas sur de la ligne, je ne teste pas- voir man find si ça foire)
find <racine de ton arboreescence> -exec sriptbidule \{\} \;\;

Auparavant, il faut que tes noms de fichiers soient bien en utf8 (si ton
systĂšme est en utf8) avant de faire les substuitutions :

# Bout de script :

echo $i|iconv -f utf8 -t utf8&&nfn=$i||nfn=$(echo $i|iconv -f iso8859-15\
 -t utf8)
[ -Z $nfn ] &&quelque-chose|| mv $1 $nfn # il faut faire quelque-chose si ça échoue aussi
# (le nom de fichier n'et ni en iso ni en utf8)

(tu dois pouvoir mettre ce test dans le find en fait)

script quelque-chose
nfn=$(echo $1|$i conv -t ascii)
mv $/$nfn  devrait marcher. Ne pas oublier de mettre l'«incident» dans
un log afin de rectifier le tir si nécessaire.
echo $1 cause un souci>>log

> connaissez-vous un script tout fait pour ca? savez-vous en faire un?
> 
> si ca scannait toute une arborescence, ce serait encore mieux :-)

avec find c'est une ligne de script (qui appelle le script pour un
fichier)


-- 
Cette phrase est fausse.

-----------------------------------------------------------------
Les listes de diffusion du CULTe - Pour une informatique libre
http://www.CULTe.org/listes/
Pour se desabonner:
mailto:linux-31-unsubscribe@CULTe.org?subject=Cliquez_sur_ENVOYER