Script qui change l'extension d'un fichier

Script qui change l'extension d'un fichier - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 07-11-2008 à 19:47:20    

Bonjour à tous,
 
Voila je cherche à faire un script qui pourrait changer l'extension de plusieurs fichiers dans un répertoire.
 
Par exemple, dans mon répertoire j'ai plusieurs fichier comme :
 
ls -lrt
 
colonne 1  colonne2  colonne3  colonne4  colonne5  colonne6  colonne7
 
                                                                                       fichier1.xml
                                                                                       fichier2.xml
                                                                                       fichier3.xml
 
Et je voudrais créer les fichiers  
 
                                                                                       fichier1.ux
                                                                                       fichier2.ux
                                                                                       fichier3.ux
 
Le tout sans effacer les fichiers xml.
Je pourrais le faire à la main mais le problème est qu'il y en a plus de 15000...
 
Est ce quelqu'un pourrait m'aider?
 
Merci d'avance.

Reply

Marsh Posté le 07-11-2008 à 19:47:20   

Reply

Marsh Posté le 07-11-2008 à 19:49:57    

Une boucle for avec un move.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 07-11-2008 à 19:51:51    

En fait je cherche la commande magique qui pourrait faire ca.
 
Hmm non un move n'irait pas car je veux garder conserver les fichiers xml.

Reply

Marsh Posté le 07-11-2008 à 19:56:01    

man rename :o
J'ai pas compris, tu veux créer des fichiers vide ou renommer des fichiers existants ou encore copier certains fichiers ? sur quels critères tu te bases pour créer tes fichier ?
En gros après ta commande, tu veux avoir fichier1.xml ET fichier1.ux ? ou changer simplement fichier1.xml en fichier1.ux ? si c'est le second cas => rename

 

Bref, explique mieux


Message édité par o'gure le 07-11-2008 à 20:00:13

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 07-11-2008 à 20:24:21    

Oui c'est vrai que c'est un peu confus, désolé.
 
Je voudrais en fait avoir fichier1.xml ET fichier1.ux.
 
Je me base donc sur le fichier xml pour créer le fichier ux.

Reply

Marsh Posté le 07-11-2008 à 20:34:47    

AFAIK Tu n'auras pas de commande magique, t'es obligé de passer par une boucle à priori.

for i in *.xml; do cp $i `echo $i | cut -d'.' -f1`.ux; done


Message cité 1 fois
Message édité par o'gure le 07-11-2008 à 20:37:30

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 07-11-2008 à 20:35:04    

man cp


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 07-11-2008 à 20:39:16    


un seul cp ? je suis curieux [:quardelitre]

Message cité 1 fois
Message édité par o'gure le 07-11-2008 à 20:43:18

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 07-11-2008 à 20:44:01    

o'gure a écrit :


un seul cp ? je suis curieux [:quardelitre]


Non, dans une boucle :o


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 07-11-2008 à 21:07:44    

o'gure a écrit :

AFAIK Tu n'auras pas de commande magique, t'es obligé de passer par une boucle à priori.

for i in *.xml; do cp $i `echo $i | cut -d'.' -f1`.ux; done




 
 
Merci pour cette boucle.
 
Donc si je met cette boucle dans un script, il va chercher les fichiers xml du répertoire courant, les copier, enlever la partie apres le '.' et mettre l'extension ux a la place?
 

Reply

Marsh Posté le 07-11-2008 à 21:07:44   

Reply

Marsh Posté le 07-11-2008 à 21:21:26    

traduction :
pour chaque fichier se terminant par ".xml" je copie ce fichier vers un nouveau fichier dont le nom sera celui d'origine, tronqué de ce que suit le premier point puis suffixé par .ux.
 
 
si tu as fichier1.truc.xml, la copie s'appellera fichier1.ux, non fichier1.truc.ux :o


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 07-11-2008 à 21:31:48    

o'gure a écrit :

traduction :
pour chaque fichier se terminant par ".xml" je copie ce fichier vers un nouveau fichier dont le nom sera celui d'origine, tronqué de ce que suit le premier point puis suffixé par .ux.
 
 
si tu as fichier1.truc.xml, la copie s'appellera fichier1.ux, non fichier1.truc.ux :o


 
Ok merci.
 
Je vais tester ca. :)

Reply

Marsh Posté le 12-11-2008 à 08:51:42    

Ou bien :

for i in *.xml; do cp "$i" "${i%.*}.ux"; done

Reply

Marsh Posté le 12-11-2008 à 11:29:41    

Citation :

for i in *.xml
do
        OUTPUT_ID=$(basename "${i}" .xml)
        cp "${i}" "${OUTPUT_ID}".ux
done


---------------
La réponse est 42
Reply

Marsh Posté le 12-11-2008 à 20:53:23    

Merci beaucoup ca marche parfaitement. :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed