Déplacer plusieurs fichier en ajoutant la date - Shell/Batch - Programmation
Marsh Posté le 20-06-2018 à 16:23:22
aaah lala, les espaces dans les noms de fichiers ...
sinon, simplement (je m'etale pas sur la syntaxe)
for i in *
do
jour=`date %Y%m%d`
nouveauNom = `sed "s/.pdf/_$jour.pdf/" $i`
mkdir sousdossier2
mv i sousdossier2/$nouveauNom
done
c'est un exemple vite fait
mais la methode est la
Marsh Posté le 21-06-2018 à 09:42:42
pyrogoto a écrit : aaah lala, les espaces dans les noms de fichiers ... |
Merci pyrogoto, j'avais déjà essayé avec 'sed' de cette façon, mais j'étais embêté avec les espaces. J'ai quand même Re-testé , mais j'ai des erreur
Code :
|
voici une partie des erreur :
sed: impossible de lire Lab: Aucun fichier ou dossier de ce type
sed: impossible de lire Internal: Aucun fichier ou dossier de ce type
sed: impossible de lire QC: Aucun fichier ou dossier de ce type
sed: impossible de lire 5: Aucun fichier ou dossier de ce type
J'ai bien l’impression que c'est toujours à cause des espaces!
Et je ne peut pas supprimer ces espaces étant donné que les fichiers pdf sont générés via un automates, et l'ingénieur d'application ne sait les supprimer Oo
Marsh Posté le 21-06-2018 à 11:19:10
ben j'utilise rarement sed
mais pour que ça marche avec les espaces, faut trouver la syntaxe particuliere qui va bien sans interferer avec le shell
quand on manipule pas tous les jours, c'est pas facile de s'y retrouver entre les quote / double quote / quote inversés / etc ...
Marsh Posté le 21-06-2018 à 11:31:51
alors pour supprimer les espaces, j'ai fait :
Code :
|
ça me remplace les espaces par "_"
Marsh Posté le 22-06-2018 à 16:58:31
Une version qui préserve les espaces :
Code :
|
Marsh Posté le 25-06-2018 à 10:41:40
Nukolau a écrit : Une version qui préserve les espaces :
|
Merci pour l'info
Marsh Posté le 20-06-2018 à 15:57:15
Bonjour à tous,
Voilà j'aimerai déplacer plusieurs fichiers *.pdf et les placer dans un sous dossier avec la date du jour dans le nom.
je vous fait l'arborescence, ce sera plus simple à comprendre:
`- Dossier
+- Sous-Dossier
| - Lab Internal QC 1 (Grp A 18418)_MI35A.pdf
| - Lab Internal QC 5 (Grp A 11218)_MI45A.pdf
| - Lab Internal QC 5 (Anti Kell 08818)_PR15B.pdf
| - Lab Internal QC 3 (Grp AB 11418 )_MI35A.pdf
`- Ainsi de suite
Et j'aimerai :
`- Dossier
+- Sous-Dossier
| +-Sous-Dossier2
| - Lab Internal QC 1 (Grp A 18418)_MI35A_20062018.pdf
| - Lab Internal QC 5 (Grp A 11218)_MI45A_20062018.pdf
| - Lab Internal QC 5 (Anti Kell 08818)_PR15B_20062018.pdf
| - Lab Internal QC 3 (Grp AB 11418 )_MI35A_20062018.pdf
`- Ainsi de suite
Donc j'aimerai que ce soit un script qui soit exécuté via crontab.
(Vous remarquerez que les fichiers n'ont jamais le même nom)
J'ai essayé avec les boucles for i in `ls` mais ça va pas à cause des espaces dans les fichier, j'ai essyayé aussi avec rename mais je n'arrive pas à y intégrer un variable $date,
j'ai essayer avec sed aussi....
bref pas évident
Une astuce ?
Merci bien ^^