Shell modifier une chaine de caractere

Speke -  
 speke -
Bonjour,
Je suis en train de faire un script d'automatisation d'une installation de programme.
En autre je vais copier des donner d'un cd que je met sur un repertoire contenant deja des fichiers.
deux des fichiers que je copie sont de la forme MASTER.XXX que je dois renommer en Master.XXX
XXX etant different pour chacun des deux fichiers
j'ai penser soit a utiliser dd ou awk mais a ce moment la il faudrait que je les isole bref c'est un peu flou
merci de vos conseils
A voir également:

4 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,
[tmpfs]$ echo "MASTER.XXX" | sed 's/\(.\)\(.*\)\(\..*\)/\1\L\2\U\3/'
Master.XXX

[tmpfs]$  
;-))
0
Speke
 
Merci ,

Mais je ne connais pas la valeur de XXX .
Depuis le cd je les amene avec cp MASTER.* vers mon repertoire.
ensuite je dois isolé tout les MASTER.XXX que je viens de copier et les renomer en Master.XXX
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
[tmpfs]$ ls -1
MASTER.AAA
MASTER.BBB
MASTER.CCC
MASTER.DDD
MASTER.EEE
MASTER.FFF
MASTER.GHJ
MASTER.PML
MASTER.RTY
MASTER.UIO
MASTER.XXX

[tmpfs]$ for i in MASTER*; do echo "mv "$i" "$(echo $i | sed 's/ASTER/aster/')""; done
mv MASTER.AAA Master.AAA
mv MASTER.BBB Master.BBB
mv MASTER.CCC Master.CCC
mv MASTER.DDD Master.DDD
mv MASTER.EEE Master.EEE
mv MASTER.FFF Master.FFF
mv MASTER.GHJ Master.GHJ
mv MASTER.PML Master.PML
mv MASTER.RTY Master.RTY
mv MASTER.UIO Master.UIO
mv MASTER.XXX Master.XXX

[tmpfs]$  
Si c'est bon, t'enlèves le "echo" et ça devrait le faire ;-))
0
speke
 
ca fonctionne
merci beaucoup
0