#1 Le 30/08/2011, à 17:57
- Takezo
[résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
salut,
je cherche à rajouter un mot dans une centaine de fichiers d'un répertoire.
Pratiquement, je voudrais rajouter -DESSINS ANIMES- dans un répertoire contenant tous les dessins animé en .avi de mon fils :
Exemple:
supertoto.avi --> supertoto-DESSINS ANIMES-.avi
et je ne sais comment faire ...
merci !
Dernière modification par Takezo (Le 30/08/2011, à 23:11)
---------------
Si ou pa sav...mandé !
Hors ligne
#2 Le 30/08/2011, à 18:18
- Levi59
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
une petite commande dans le terminal
cd /CheminVers/Dossier/Vidéos ##Mettre le bon chemin
for VID in *.avi; do mv "${VID}" "${VID%.*}-DESSINS ANIMES-.avi"; done
Dernière modification par Levi59 (Le 30/08/2011, à 18:19)
Hors ligne
#3 Le 30/08/2011, à 18:21
- poum
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
Saisir dans le répertoire la commande suivante:
for i in *.avi; do mv $i `basename $i .avi`-DESSIN\ ANIMES-.avi; done
Explication: pour tout fichier avi,
renommer en "nom sans .avi" suivi de -DESSIN ANIME-.avi
Voilà
Dernière modification par poum (Le 30/08/2011, à 18:21)
Because rules matter !
http://philippe.poumaroux.free.fr
Hors ligne
#4 Le 30/08/2011, à 18:39
- Levi59
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
Saisir dans le répertoire la commande suivante:
for i in *.avi; do mv $i `basename $i .avi`-DESSIN\ ANIMES-.avi; done
Explication: pour tout fichier avi,
renommer en "nom sans .avi" suivi de -DESSIN ANIME-.aviVoilà
Pourquoi faire appel a basename alors qu'une simple subtitution suffit?
En plus il faut utiliser $(commande) au lieu de `commande`
Hors ligne
#5 Le 30/08/2011, à 18:44
- Takezo
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
les 2 fonctionnent, merci !
<commentaire>arrf, j'ai encore du boulot pour les scripts...</commentaire>
---------------
Si ou pa sav...mandé !
Hors ligne
#6 Le 30/08/2011, à 19:00
- Levi59
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
n'oublie pas le résolu
Hors ligne
#7 Le 30/08/2011, à 19:25
- sputnick
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
houlà, ya plus simple :
installer prename (ou rename selon les distribsI) et ensuite il suffit de faire :
prename 's/\.avi/-DESSINS_ANIMES.avi/' .*avi
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#8 Le 01/09/2011, à 20:11
- Takezo
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
n'oublie pas le résolu
Salut, presque résolu...
j'ai voulu faire de me pour des fichiers mp3 et il me semble que ça coince à cause du nom de fichier:
Exemple our le titre :
01-louis armstrong-hobo you can't ride this train.mp3
paul@case:~/partage virtuel/jazz$ for i in *.mp3; do mv $i `basename $i`-JAZZ-.mp3; done
basename: opérande supplémentaire «you»
Saisissez « basename --help » pour plus d'informations.
mv : option invalide -- 'J'
Une idée ?
Merci
---------------
Si ou pa sav...mandé !
Hors ligne
#9 Le 01/09/2011, à 20:25
- aduxas
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
Ah, les blancs dans les noms de fichier!
basename fichier avec blanc
C'est comme si tu appelais basename avec trois arguments. Il faut entourer le nom d'un tel fichier avec des "
Hors ligne
#10 Le 01/09/2011, à 20:27
- Levi59
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
Celui là ne fonctionne pas?
for VID in *.avi; do mv "${VID}" "${VID%.*}-DESSINS ANIMES-.avi"; done
edit
oui c'est les espaces... et comme je l'ai dis, on utilis plus `commande` mais $(commande)
Dernière modification par Levi59 (Le 01/09/2011, à 20:30)
Hors ligne
#11 Le 01/09/2011, à 20:34
- Takezo
Re : [résolu] find -iname "*.avi" et rajouter à tous les fichiers un nom
oui ta commande fonctionne ...
---------------
Si ou pa sav...mandé !
Hors ligne