Contenu | Rechercher | Menus

Annonce

Le forum a une nouvelle maison !
Le forum a été migré sur un nouvel hébergement. Si jamais vous trouvez le moindre problème, n'hésitez pas à nous en faire part !
Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 13/10/2012, à 15:35

weezixx
Membre

[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, à 16:48)

Hors ligne

#2 Le 13/10/2012, à 16:01

nesthib
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

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

Hors ligne

#3 Le 13/10/2012, à 16:18

weezixx
Membre

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, à 16:21

nesthib
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Re : [Résolu] Renommer en additionnant

D'où l'importance de donner tous les détails de son problème wink

remplace les lignes 3 et 4 de ma commande précédente par :

    numero="${fichier##* }"
    numero="${numero%.wav}"
    nouveau_fichier="${fichier% *} $((28+${numero})).wav"

Hors ligne

#5 Le 13/10/2012, à 16:31

weezixx
Membre

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, à 16:37

nesthib
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

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)

Hors ligne

#7 Le 13/10/2012, à 16:39

weezixx
Membre

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, à 16:45

nesthib
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

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]

wink

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, à 16:45)

Hors ligne