Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1206 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Renommer plusieurs fichiers à la volée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Renommer plusieurs fichiers à la volée

n°1167832
guda
Posté le 02-08-2005 à 13:47:42  profilanswer
 

salut,
 
J'ai pleins de fichiers xxx.txt.moved ex :
ra001.txt.moved
s002.txt.moved
pos003.txt.moved
 
j'ai besoin d'enlever le ".moved" à ces fichiers afin de trouver :
ra001.txt
s002.txt
pos003.txt
 
J'ai tenté un "mv *.moved *" mais cela ne fonctionne pas.
 
Avez-vous une idée ?

mood
Publicité
Posté le 02-08-2005 à 13:47:42  profilanswer
 

n°1167850
couak
Posté le 02-08-2005 à 14:06:57  profilanswer
 

tu peux essayer de faire une boucle 'for' et enlever le .moved dans la syntaxe avec un sed

n°1167892
sircam
I Like Trains
Posté le 02-08-2005 à 14:40:55  profilanswer
 

Ou encore, en BASH, toujour à l'aide d'une boucle for, utiliser les opérations de manip de chaînes.
 
Quel est ton niveau, tu sais faire une boucle ?
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1168335
wackevat
Posté le 02-08-2005 à 21:54:14  profilanswer
 

Ou basename et ça devrait aller.

n°1168343
Elmoricq
Modérateur
Posté le 02-08-2005 à 22:11:38  profilanswer
 

wackevat a écrit :

Ou basename et ça devrait aller.


 
Non, car basename se contente d'oter le chemin pour ne conserver que le nom du fichier.
 
En ksh, il suffit de faire un truc du genre :
 

for nom_fichier in `\ls -1 *moved`
do
    radix=`echo ${nom_fichier} | cut -d'.' -f1`
    mv ${nom_fichier} ${radix}.txt
done


 
 
Sinon en non-standard, il me semble (pas sûr) que sur certains unixoïdes, il y a une commande "rename" assez évoluée. A confirmer.


Message édité par Elmoricq le 02-08-2005 à 22:12:31
n°1168367
wackevat
Posté le 02-08-2005 à 23:03:00  profilanswer
 

Elmoricq a écrit :

Non, car basename se contente d'oter le chemin pour ne conserver que le nom du fichier.


http://unixhelp.ed.ac.uk/CGI/man-cgi?basename
--> tu peux définir suffix comme tu veux.

n°1168480
Elmoricq
Modérateur
Posté le 03-08-2005 à 09:24:23  profilanswer
 

wackevat a écrit :

http://unixhelp.ed.ac.uk/CGI/man-cgi?basename
--> tu peux définir suffix comme tu veux.


 
Je n'avais jamais remarqué cette option dans basename. Plutôt sympa.
 
Je reprends donc mon exemple pour utiliser basename :
 

for nom_fichier in `\ls -1 *moved`
do
    mv ${nom_fichier} `basename ${nom_fichier} .moved`
done


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Renommer plusieurs fichiers à la volée

 

Sujets relatifs
un grep qui cherche plusieurs valeurs[MYSQL] Concaténation de plusieurs lignes
Traiter des fichiers volumineux ?[FTP] Comment télécharger puis supprimer les fichiers
Internationalisation et encodage des fichiersLier les fichiers .xml .xsd .xsl
Comment gèrer plusieurs bases par une même interfaceInterface graphique à partir de fichiers de ressource
[SQL - ORACLE] Faire un somme de count sur plusieurs tablesplusieurs count(*) avec plusieurs WHERE avec des if
Plus de sujets relatifs à : Renommer plusieurs fichiers à la volée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR