Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2011, 14h22   #1
Membre actif
 
Inscription : avril 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 526
Points : 169
Points : 169
Par défaut Mise en majuscule nom de fichier

Bonjour,

J'ai un ensemble de fichiers dans un répertoire avec un nom en minuscule du type xxx.cfg;
Je voudrais savoir si il y a une commande pour passer d'un seul coup le nom de l'ensemble de ces fichiers en majuscule ?

Merci d'avance.
stefsas est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/06/2011, 15h21   #2
Membre confirmé
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 181
Points : 267
Points : 267
Tu peux faire une boucle sur la selection de tes fichiers ( ls qqchose par exemple ) pour recuperer l'ancien nom dans $f
le copier dans une variable typée u(pper)
Code :
1
2
3
4
5
6
for f in $( ls -1 )
do
typeset -u u=$f
echo $u
echo $f
done
et mettre le mv qui va bien
Jean.Cri1 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/06/2011, 15h26   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
tu peux utiliser tous les transcripteurs, tr par exemple

Code :
for i in *cfg ; do mv ${i} $(echo ${i}|tr 'a-z' 'A-Z') ; done
ON MANIPULE AVEC PRUDENCE hein ! on ne se trompe pas sur la sélection des fichiers !!!
j'aurai prévenu... bha oui un shell c'est con ça fait ce qu'on dit de faire même si c'est une bourde.
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 22/06/2011, 12h46   #4
Membre éclairé
 
Avatar de FRUiT
 
Homme
Inscription : février 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2011
Messages : 83
Points : 326
Points : 326
Citation:
Envoyé par Jean.Cri1 Voir le message
Ergl !

http://mywiki.wooledge.org/ParsingLs
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
FRUiT est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 22/06/2011, 21h54   #5
Membre confirmé
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 181
Points : 267
Points : 267
Merci pour les infos du liens.
Je ne connaissais pas la syntaxe for i in *.*
Pas évident de savoir que UNIX va y chercher des noms de fichiers ...
D'un autre coté, mettre des espaces ou autres dans un nom de fichier ...
Jean.Cri1 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/06/2011, 18h02   #6
Membre émérite
 
Avatar de Pouic
 
Inscription : octobre 2004
Messages : 668
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2004
Messages : 668
Points : 904
Points : 904
Citation:
Envoyé par FRUiT Voir le message
Mouais, enfin, faut pas non plus faire une généralité de ce que dit ce site (même s'il y a de bonnes choses à prendre).

Un
Code :
ls --quoting-style=c  # ou encore =escape, ...
permet de s'affranchir du problème soulevé, et donc d'utiliser la forme "for i in $(ls) [...]".
__________________
Software becomes slower faster than hardware becomes faster

http://xrenault.developpez.com
API C standard (C ANSI )
Pouic est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 27/06/2011, 18h21   #7
Membre émérite
 
Avatar de Pouic
 
Inscription : octobre 2004
Messages : 668
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2004
Messages : 668
Points : 904
Points : 904
Citation:
Envoyé par frp31 Voir le message
tu peux utiliser tous les transcripteurs, tr par exemple

Code :
for i in *cfg ; do mv ${i} $(echo ${i}|tr 'a-z' 'A-Z') ; done
ON MANIPULE AVEC PRUDENCE hein ! on ne se trompe pas sur la sélection des fichiers !!!
j'aurai prévenu... bha oui un shell c'est con ça fait ce qu'on dit de faire même si c'est une bourde.
Attention, avec ton code, le fichier "PAFcfg" qui n'a rien à voir avec la commande sera pris aussi ;-)
__________________
Software becomes slower faster than hardware becomes faster

http://xrenault.developpez.com
API C standard (C ANSI )
Pouic est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h30.


 
 
 
 
Partenaires

Hébergement Web