|
|
|
|
Bonjour à toutes & tous
Je suis novice sous linux, et je cherche a renommer tous les fichiers d'un répertoire de la façon suivante:
rep: /home/test/
1.sql
2.sql
..
100.sql
en
1-2006-01-17.sql
2-2006-01-17.sql
..
100-2006-01-17.sql
Je connais quand même la cde :
$ date +%Y-%m-%d mv /home/test/*.sql /home/test/Nouveau Nom.sql
Salut,
VAR=`date +%Y-%m-%d` for i in $(ls *.sql); do mv $i `echo $i | sed "s/^\([0-9][0-9]*\)\(\.[a-z]*\)/\1-$VAR\2/"`;doneLa commande est sur une seule et même ligne à partir du "for...". ;-)) Z'@+...che et Bonne Année 2006. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
Répondre à [Dal]
|
Bonsoir à tous,
#! /usr/bin/perl -w
use strict;
my ($jour,$mois,$annee)=(localtime)[3,4,5];
my $j = sprintf("%02d",$jour);
my $m = sprintf("%02d",$mois+1);
my $a = $annee+1900;
my @fic = glob "/home/lamitest/test/*.sql";
foreach (@fic){
(my $new_name = $_)=~ s/(\d+)(\.sql)/$1-$a-$m-$j$2/;
rename $_,$new_name;
Exécution: [lamitest@localhost ~]$ ls -l test/ total 0 -rw-rw-r-- 1 lamitest lamitest 0 jan 17 20:03 100.sql -rw-rw-r-- 1 lamitest lamitest 0 jan 17 20:02 10.sql -rw-rw-r-- 1 lamitest lamitest 0 jan 17 20:02 1.sql -rw-rw-r-- 1 lamitest lamitest 0 jan 17 20:02 2.sql [lamitest@localhost ~]$ perl rename_date.pl [lamitest@localhost ~]$ ls -l test/ total 0 -rw-rw-r-- 1 lamitest lamitest 0 jan 17 20:03 100-2006-01-17.sql -rw-rw-r-- 1 lamitest lamitest 0 jan 17 20:02 10-2006-01-17.sql -rw-rw-r-- 1 lamitest lamitest 0 jan 17 20:02 1-2006-01-17.sql -rw-rw-r-- 1 lamitest lamitest 0 jan 17 20:02 2-2006-01-17.sql a+ lami20j |
Re-
[jp@Mandrake tmpfs]$ ls -1 10.sql 1.sql 2.sql 3.sql 4.sql 5.sql 6.sql 7.sql 8.sql 9.sql [jp@Mandrake tmpfs]$ VAR=`date +%Y-%m-%d` [jp@Mandrake tmpfs]$ echo $VAR 2006-01-17 [jp@Mandrake tmpfs]$ for i in $(ls *.sql); do mv $i `echo $i | sed "s/^\([0-9][0-9]*\)\(\.[a-z]*\)/\1-$VAR\2/"`;done [jp@Mandrake tmpfs]$ ls -1 10-2006-01-17.sql 1-2006-01-17.sql 2-2006-01-17.sql 3-2006-01-17.sql 4-2006-01-17.sql 5-2006-01-17.sql 6-2006-01-17.sql 7-2006-01-17.sql 8-2006-01-17.sql 9-2006-01-17.sql [jp@Mandrake tmpfs]$;-)) Z'@+...che et Bonne Année 2006. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé.
|
Re,
#! /usr/bin/perl -w
use strict;
my ($jour,$mois,$annee)=(localtime)[3,4,5];
my $j = sprintf("%02d",$jour);
my $m = sprintf("%02d",$mois+1);
my $a = $annee+1900;
my @fic = glob "/home/lamitest/test/*.sql"; # mets ici ton répertoire
foreach (@fic){
(my $new_name = $_)=~ s/(\d+)(\.sql)/$1-$a-$m-$j$2/;
rename $_,$new_name; |