Renomer liste fichier linux [Fermé]

Signaler
Messages postés
1
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
22 novembre 2006
-
Messages postés
789
Date d'inscription
samedi 26 février 2005
Statut
Contributeur
Dernière intervention
19 juillet 2009
-
Salut,

Qui peut me donner le script pour modifier des fichiers sous linux version debian.exemple j'ai des fichiers du type 1005 et 1006 et 1007 et je veux les modifiés en 1005. et 1006. et 1007.

Ce sont des fichiers mail sous squirmail ,je ne peux faire un cyrreconstruct de la boite seulement et seulement si il y a un point à la fin .Comme il y a 400 go de messages un par un c'est la galère .
J'ai teste quelque script mais sans aucun résultat.

Merci d'avance

3 réponses

une commande qui fonctionne sans perl :

find . -name "*.html" | while read l ; do mv -v "$l" `echo "$l" | sed "/\.html/s//\.txt/"` ;

A+
4
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
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 531
Salut,

renomme tous les fichiers (dont le nom commence avec 10) d'un répertoire
rename -v 's/(.*)/$1./'  /chemin/vers/10*
Un exemple (dans le répertoire en cours)
lami20j@debian:~/squirmailrep$ ls -l
total 0
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 10010
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1005
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1006
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1007
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1008
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1009
lami20j@debian:~/squirmailrep$ rename -v 's/(.*)/$1./' 10*
10010 renamed as 10010.
1005 renamed as 1005.
1006 renamed as 1006.
1007 renamed as 1007.
1008 renamed as 1008.
1009 renamed as 1009.
lami20j@debian:~/squirmailrep$ ls -l
total 0
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 10010.
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1005.
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1006.
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1007.
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1008.
-rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1009. 
lami20j
Messages postés
789
Date d'inscription
samedi 26 février 2005
Statut
Contributeur
Dernière intervention
19 juillet 2009
291
en bash :
si tu n'as que ces fichiers :
cd /le/rep
for i in * ; do mv $i $i. ; done

si il y a plusieurs type de fichier, tu peux spécifier :
for i in 10[0-9][0-9] ; do mv $i $i. ; done
(prend tous les fichier de 1000 à 1099 par exemple)

Phiphi