Renommer des fichier

Résolu/Fermé
Sara - 27 mai 2011 à 15:11
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 27 mai 2011 à 17:01
Bonjour,

Si on a un dossier qui contient 100 fichiers, le nom de chaqun de ces fichier est de type:
GAL_2011125_2011325_std_fre_A.txt
comment je peux sur Linux changer son nom au:
GAL_2011125_2011325.txt

qqn peut m'aider car je suis débutante en Linux et je dois vraiment trouver une solution de ce problème

Merci d'avance

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
27 mai 2011 à 15:27
Salut,

Si tous tes fichiers sont du même acabit que dans ton exemple...

$ ls -1
GAL_2011125_2011320_std_fre_A.txt
GAL_2011125_2011321_std_fre_A.txt
GAL_2011125_2011322_std_fre_A.txt
GAL_2011125_2011323_std_fre_A.txt
GAL_2011125_2011324_std_fre_A.txt
GAL_2011125_2011325_std_fre_A.txt

$ for fich in *;do mv -v "${fich}" $(echo ${fich} | sed 's/_[a-z]\+.*\./\./');done
'GAL_2011125_2011320_std_fre_A.txt' -> 'GAL_2011125_2011320.txt'
'GAL_2011125_2011321_std_fre_A.txt' -> 'GAL_2011125_2011321.txt'
'GAL_2011125_2011322_std_fre_A.txt' -> 'GAL_2011125_2011322.txt'
'GAL_2011125_2011323_std_fre_A.txt' -> 'GAL_2011125_2011323.txt'
'GAL_2011125_2011324_std_fre_A.txt' -> 'GAL_2011125_2011324.txt'
'GAL_2011125_2011325_std_fre_A.txt' -> 'GAL_2011125_2011325.txt'

$ ls -1
GAL_2011125_2011320.txt
GAL_2011125_2011321.txt
GAL_2011125_2011322.txt
GAL_2011125_2011323.txt
GAL_2011125_2011324.txt
GAL_2011125_2011325.txt

$

;-))
0
En fait, j'ai essayé votre code pour des fichiers comme vous avez proposé mais ça marche pas !!

(Illegal variable name)?
je sais pas pourquoi??


et les fichier que je les ai dans le dossier contient aussi des chiffres ;

GAL_2010121_2012315_32d_f1e_A.txt
0
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
27 mai 2011 à 16:03
Salut,

Peux-tu afficher ce que tu tapes? Ca ne permettra de voir l'erreur.
0
#!/bin/csh
foreach file (GAL*)
echo ''
echo 'hiiii'
echo ''
mv -v "${fich}" $(echo ${fich} | sed 's/_[a-z]\+.*\./\./')
end

et sur l'ecran il affiche:


hiiii

Illegal variable name.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
27 mai 2011 à 16:08
J'avais prévenu : Si tous tes fichiers sont du même acabit ;-\

Les fichiers ont tous le même nombre de caractères, du moins dans la partie à garder ?

Quel shell utilises-tu ?
0
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
27 mai 2011 à 16:08
Mais bash au lieu de csh
0
oui tous les fichiers ont le meme nombre de caractères
0