Pages : 1
#1 Le 29/01/2007, à 14:35
- sylvaing01
Majuscule au début des mots
Bonjour,
j'essaie de renommer des fichiers en mettant une majuscule au début de chaque mot du nom du fichier.
ex: mon fichier.txt doit donner Mon Fichier.txt
voilà seulement en parcourant le forum j'ai trouvé cette ligne interressante:
rename 'y/a-z/A-Z/' * ; qui me met tout en majuscule
j'ai donc essayé comme çà:
rename 's/[ ][a-z]/ A-Z/' *
mais çà me donne: Mon A-Zichier
j'ai beau essayer des variantes, je ne parvient pas à trouver.
est ce que quelqu'un aurait une idée?
Hors ligne
#2 Le 29/01/2007, à 14:57
- goodluck
Re : Majuscule au début des mots
Salut,
Et que vivent les espaces dans les noms de fichiers (ou de dossiers)
Amicalement, Gerard ;)
http://counter.li.org/cgi-bin/certificate.cgi/302199
http://www.worldcommunitygrid.org/
Hors ligne
#3 Le 29/01/2007, à 17:07
- glattering
Re : Majuscule au début des mots
salut;
tu fais appelles à ce qu'on appelle les expressions régulières (renseigne toi de ce côté);
Sinon, pour ce que j'en sais, tu cherches tous les espaces suivis d'une lettre minuscule et tu remplace le tout par un espace suivi de A-Z, donc ce que tu obtiens me semble cohérent avec ce que tu as écris (même si c'est pas le résultat recherché);
Désolé je ne connais pas très bien les expressions régulières donc je n'ai pas de solution à te donner.
Membre de l'APRIL - « promouvoir et défendre le logiciel libre » -
Hors ligne
#4 Le 29/01/2007, à 17:28
- any
Re : Majuscule au début des mots
une reponse a cette question (donné par Doby) ce trouve sur ce post
http://forum.ubuntu-fr.org/viewtopic.php?id=92164
file='mon fichier.txt'
first=`echo "$file" | cut -c1`
first=`echo $first | tr [a-z] [A-Z]`
rest=`echo "$file" | cut -c2-0`
mv "$file" $first"$rest"
#5 Le 29/01/2007, à 17:36
- sylvaing01
Re : Majuscule au début des mots
salut Any,
j'ai déjà testé ces lignes, mais çà ne fonctionne pas, il ne change que la première lettre du premier mot.
merci quand même.;)
Hors ligne
#6 Le 29/01/2007, à 17:42
- any
Re : Majuscule au début des mots
ok lol j'avais pas vu que Fichier aussi devait etre en majuscule
#7 Le 29/01/2007, à 17:55
- any
Re : Majuscule au début des mots
bon c'est bourrin ;(
file='mon fichier.txt'
file1=`echo "$file" | cut -f1 -d ' '`
file2=`echo "$file" | cut -f2 -d ' '`
first1=`echo "$file1" | cut -c1`
first1=`echo $first1 | tr [a-z] [A-Z]`
rest1=`echo "$file1" | cut -c2-0`
first2=`echo "$file2" | cut -c1`
first2=`echo $first2 | tr [a-z] [A-Z]`
rest2=`echo "$file2" | cut -c2-0`
file1=$first1"$rest1"
file2=$first2"$rest2"
echo $file1
echo $file2
mv "$file" $file1" $file2"
#8 Le 29/01/2007, à 22:52
- sylvaing01
Re : Majuscule au début des mots
ok, merci Any, c'est très interessant, mais finalement, je suis partit sur un petit programme en c qui marche du tonnerre.
encore merci
Dernière modification par sylvaing01 (Le 29/01/2007, à 22:53)
Hors ligne
#9 Le 29/01/2007, à 23:40
- any
Re : Majuscule au début des mots
oui c'est clair un petit prog en C
y a rien de tel
#10 Le 30/01/2007, à 00:03
- Spalax
Re : Majuscule au début des mots
Ceci met des majuscule au début des mots du fichier donné en argument.
sed -e 's/^\([a-z]\)/\U\1/g' -e 's/ \([a-z]\)/ \U\1/g'
Pour l'appliquer au renommage, il suffit de faire :
mv "monFichier" "`echo monFichier | sed -e 's/^\([a-z]\)/\U\1/g' -e 's/ \([a-z]\)/ \U\1/g'`"
Et pour des renommages en masse :
ls -1 * | while read i
do
mv "$i" "`echo $i | sed -e 's/^\([a-z]\)/\U\1/g' -e 's/ \([a-z]\)/ \U\1/g'`"
done
Dernière modification par Spalax (Le 30/01/2007, à 00:04)
Hors ligne
#11 Le 30/01/2007, à 02:14
- any
Re : Majuscule au début des mots
bon juste pour le fun une version awk
file="mon fichier au nom tordu sans majuscule.txt"
mv "$file" "`echo "$file"|awk '{ for (i=0; i<=NF; i++) sub(/^./, toupper(substr($i,1,1)), $i); print $0 }'`"
#12 Le 30/01/2007, à 11:52
- sylvaing01
Re : Majuscule au début des mots
ok merci les gars, c'est simpa, je vait essayer tout çà.
En tout cas, pour une simple majuscule au début des mots, c'est vraiment pas une mince affaire.
bon, je finis ma version en C et je posterait le code, parce que çà reste quand même beaucoup plus rapide qu'un script ;-)
encore merci pour votre aide
Hors ligne
#13 Le 16/02/2014, à 00:55
- diego25
Re : Majuscule au début des mots
Salut je suis dsl de déterrer ce poste mais je suis tomber dessus avec google et comme
personne n'a donner de solution avec rename , En cherchant j'ai réussi a trouver une solution,
donc je la poste au cas ou ça intéresse quel qu'un .
Ajouter des majuscule en masse :
Fichier test :
une belle image.jpg
Pour une majuscule au début de chaque nom de fichier :
rename 's/^([a-z])/uc $1/e' *
Résultat :
Une belle image.jpg
Et pour une majuscule au début de chaque mot de nom de fichier :
rename 's/^([a-z])/uc $1/e' *;rename 's/( [a-z])/ uc $1/ge' *
résultat :
Une Belle Image.jpg
Hors ligne
#14 Le 16/02/2014, à 02:10
- nesthib
Re : Majuscule au début des mots
Mieux vaut tard que jamais, merci diego25 et bienvenue sur le forum.
Une solution plus compacte pour mettre en majuscule la première lettre de chaque mot :
rename -n 's/(^[a-z]| [a-z])/uc $1/eg' *
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#15 Le 16/02/2014, à 10:44
- Spalax
Re : Majuscule au début des mots
Un peu différent :
rename 's/(\b|_)([[:alpha:]])/$1\u$2/g' *
Hors ligne
Pages : 1