En réponse à [EMAIL PROTECTED]:

pour faire complet voilà une solution possible :

ls | awk -f trspace

et crée un fichier trspace avec dedans les lignes

BEGIN {IFS="|"} 
{ 
a=$_;
gsub (" ", "_"); 
gsub ("\'", "_");
print "mv \"" a "\" " $_
}

explications pour les non initiés à awk :

IFS : Input Field Separator : le caractère délimitant les champs de la ligne. 
par défault c'est l'espace donc je l'initie avec le '|' que je suis à 
peu près sur de ne pas rencontrer dans un nom de fichier. Si je ne l'initialise 
pas je ne récupérerai que le premier mot du nom de fichier.

je sauvegarde le nom de fichier ($_ = le contenu de la ligne en cours de 
lecture ) dans une variable temporaire

je remplce tous les espaces puis les apostrophes par des '_'

je n'ai plus alors qu'à afficher la commande en n'oubliant pas de mettre des 
guillemets pour délimiter le nom de fichier pour qu'il ne croit pas 
avoir affaire à plusieurs fichiers et me renvoie une erreur me disant qu'il ne 
trouve pas le fichier.

tu n'as plus qu'à rediriger la sortie vers un fichier, le rendre exécutable et 
l'exécuter pour n'avoir plus d'espace dans tes noms de fichiers. J'ai 
fait de même avec des fichiers doc que je récupérais sur un serveur NT et que 
je devais indéxer et référencer sur un site mais en y ajoutant la 
modification des caractères accentués non gérés par les les browsers.


Administrateur Développeur de sites Internet / Intranet
CV au format HTML : 
http://patrice.mahy.free.fr/emploi/commun/resume.php?id='1234567Z'

Linux-Azur :      http://www.linux-azur.org
Désinscriptions: http://www.linux-azur.org/liste.php3
**** Pas de message au format HTML, SVP ****

Répondre à