Renomer liste fichier linux

Fermé
deharo Messages postés 1 Date d'inscription dimanche 12 novembre 2006 Statut Membre Dernière intervention 22 novembre 2006 - 22 nov. 2006 à 21:06
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 - 16 avril 2007 à 21:52
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
A voir également:

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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 nov. 2006 à 21:29
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
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295
16 avril 2007 à 21:52
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
0