#1 Le 13/10/2012, à 16:35
- weezixx
[Résolu] Renommer en additionnant
Bonjour,
j'ai des musiques venant d'un cd, et donc ça donne track 1, track 2, …
comme c'est le 2e cd j'aurai aimé que ça suive dans l'ordre du 1er …
Le 1er va de 1 à 28, donc j'aurai voulu que ça suive avec track 29, track 30 etc
et le tout en ligne de commande si possible ^^
J'ai imaginé qu'on puisse isolé le chiffre et faire une simple addition, track {1+28}, track {2+28}, …
J'espère que vous me suivez toujours ^^
Merci
Dernière modification par weezixx (Le 13/10/2012, à 17:48)
Hors ligne
#2 Le 13/10/2012, à 17:01
- nesthib
Re : [Résolu] Renommer en additionnant
Tu ne donnes pas assez de détails pour qu'on te donne une réponse complète (notamment sur la localisation des fichiers du second CD). Admettons que les pistes du CD1 soient dans ./CD1/ et celles du CD2 dans ./CD2/
Admettons aussi que tu utilises une version récente de bash (ex. 4.2) et que tes fichiers n'ont pas d'extension (s'il y en a une il suffira d'une ou deux étapes supplémentaires)
for fichier in CD2/*
do
numero="${fichier##* }"
nouveau_fichier="${fichier% *} $((28+${numero}))"
echo mv "${fichier}" "${nouveau_fichier}"
done
echo mv ./CD2/* ./CD1/
supprime les « echo » pour effectuer le déplacement une fois que tu as confirmé que ça fonctionne
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 13/10/2012, à 17:18
- weezixx
Re : [Résolu] Renommer en additionnant
Ça me pose en effet des soucis au niveau de l'extension :
bash: 28+10.wav : erreur de syntaxe : opérateur arithmétique non valable (le symbole erroné est ".wav")
Hors ligne
#4 Le 13/10/2012, à 17:21
- nesthib
Re : [Résolu] Renommer en additionnant
D'où l'importance de donner tous les détails de son problème
remplace les lignes 3 et 4 de ma commande précédente par :
numero="${fichier##* }"
numero="${numero%.wav}"
nouveau_fichier="${fichier% *} $((28+${numero})).wav"
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#5 Le 13/10/2012, à 17:31
- weezixx
Re : [Résolu] Renommer en additionnant
Ça marche super !
Mais j'ai une question, on aurait pas pu faire juste trouver le numéro du fichier (avec une regex) et en lui ajoutant 28 et tout ça en boucle ?
Hors ligne
#6 Le 13/10/2012, à 17:37
- nesthib
Re : [Résolu] Renommer en additionnant
Tu peux faire ça en zsh :
zmv -n 'CD2/(*) ([0-9]*).wav' 'CD2/$1 $(($2+28)).wav'
(enlève le -n pour appliquer la commande)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#7 Le 13/10/2012, à 17:39
- weezixx
Re : [Résolu] Renommer en additionnant
tu peux brièvement m'expliquer la fonction de #, ##, % que tu ma donné pour la boucle ?
Merci encore ;-)
Hors ligne
#8 Le 13/10/2012, à 17:45
- nesthib
Re : [Résolu] Renommer en additionnant
Je t'encourage à lire le man de bash :
man bash
à la section « Parameter Expansion », une fois dans le man :
/Parameter Expansion[entrée]
NB. en gros c'est pour retravailler le texte contenu dans une variable.
NB2. pense à modifier ton premier message pour ajouter [résolu] au début du titre
Dernière modification par nesthib (Le 13/10/2012, à 17:45)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne