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

Signaler
Messages postés
109
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
22 janvier 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
18129
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 avril 2020
4 716
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 74406 internautes nous ont dit merci ce mois-ci

Messages postés
109
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
22 janvier 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
18129
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 avril 2020
4 716
enlever le echo pour effectuer le rename
for F in f*csv; do echo mv $F ${F/+(\")/}; done
Messages postés
109
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
22 janvier 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 ?
dubcek
Messages postés
18129
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 avril 2020
4 716
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
18129
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 avril 2020
4 716
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
18129
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 avril 2020
4 716
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
18129
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 avril 2020
4 716
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.