Modifier nom de fichier dans un répertoire [Résolu/Fermé]

Signaler
Messages postés
112
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
17 novembre 2020
-
 JsuisNul -
Bonjour a tous,

J'ai un répertoire ou j'ai plusieurs fichier qui se termine comme suit :
fichier_XX""".csv

je voudrais tous les renommer en supprimant les """ pour avoir :
fichier_XX.csv

J'ai essayer la commande rename mais j'ai l'impression qu'elle n'est pas reconnu...

merci d'avance.

11 réponses

Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 308
hello
bash: rename command not found ?
sinon essayer : (rien n'est renommé avec -n)
$ rename -n 's/XX[^.]*./XX./' fichier*.csv
fichier_XX""".csv renamed as fichier_XX.csv
$ 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
112
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
17 novembre 2020

Bonjour,

voila quand je tape rename man :
ksh: rename: not found

Sinon il faut que je précise que les noms des fichiers se décomposent ainsi :

fichier_XX""".csv (exemple vrai nom : f_000520636_HPCIC_BX11_942""".csv )

fichier = début du nom de fichier identique
XX = numéro différent sur chaque fichier
""" = parti à supprimer
.csv = extension

Merci.
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 308
enlever le echo pour effectuer le rename
for F in f*csv; do echo mv $F ${F/+(\")/}; done
Messages postés
112
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
17 novembre 2020

Merci pour tes réponses.
Est ce que je dois préciser le répertoire ? ou il suffit juste d'exécuter le script en étant déjà dans le répertoire ?
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 308
il faut être dans le répertoire
Hello,

Bon j'ai donc exécuté dans le répertoire mais j'ai un message d'erreur :

nso_1.ksh[2]: ${F/+(\")/}: bad substitution
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 308
un vieux ksh .... alors essayer:
for F in fich*.csv ; do echo mv $F $(echo $F | sed 's/"*//g'); done
faut-il que je laisse les "echo" ?
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 308
si ce qu'affiche la commande te va, enlève l'echo pour exécuter le rename
Bon j'ai essayé avec les echo, le résultat afficher à l'aire bon mais il se passe rien.

Sans les echo voila ce que j'obtiens :

nso_1.ksh[2]: f_000520636_HPCIC_BX11_998""".csv: cannot execute
Usage: mv [-I] [-i | -f] [-E{force|ignore|warn}] [--] src target
or: mv [-I] [-i | -f] [-E{force|ignore|warn}] [--] src1 ... srcN directory
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 308
il ne faut pas enlever le 2ème echo ! comme ça:
for F in f*.csv ; do mv $F $(echo $F | sed 's/"*//g'); done
Super ça fonctionne impec !! ;-)

Merci pour ton Aide.

P.S pour Jipicy : Désolé d'avoir poster en double car je pensais que ma première demande n'avait pas été pris en compte.