#1 Le 13/09/2012, à 20:40
- bassaumax
[Résolu] [BASH] Un problème de chemin, d'espace et de quotes
Bonjour
Je suis plutôt fort quand il s'agit de faire des scripts qui ne marchent pas, je vous présente donc mon dernier en date : un script qui enchâsse une image jpeg dans les tags ID3 du premier titre d'un album.
Sachant que ce script ne marche que si la musique est rangée dans le même dossier que la couverture à inclure.
Mais trêve de parole, place au script.
#!/bin/bash
#Insérer les pochettes des albums dans les tags ID3 du premier mp3 de chaque album
#set -x
where=`pwd`
for musique in `find $where -name "*01*.mp3"`
do
coverdir=dirname $musique
eyeD3 --add-image $coverdir/cover.jpg:FRONT_COVER $musique
done
Petite précision, ce script utilise eyeD3
Mon principal problème vient du fait que j'ai besoin de taguer un fichier nommé Atom Heart Mother.mp3 qui contient des espaces ( parmi d'autres ) mais mon script s’obstine à faire n'importe quoi avec les espaces...
J'attend vos lumières avec impatience
Dernière modification par bassaumax (Le 13/09/2012, à 22:46)
Hors ligne
#2 Le 13/09/2012, à 20:50
- sputnick
Re : [Résolu] [BASH] Un problème de chemin, d'espace et de quotes
Salut,
on utilise pas une boucle for avec find.
#!/bin/bash
#Insérer les pochettes des albums dans les tags ID3 du premier mp3 de chaque album
find . name "*01*.mp3" | while read musique; do
coverdir=$(dirname "$musique")
eyeD3 --add-image "$coverdir/cover.jpg:FRONT_COVER $musique"
done
Dernière modification par sputnick (Le 13/09/2012, à 21:46)
Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. Confucius
https://sputnick.fr
Hors ligne
#3 Le 13/09/2012, à 21:27
- bassaumax
Re : [Résolu] [BASH] Un problème de chemin, d'espace et de quotes
Merci, apres quelques changements, ça marche presque
#!/bin/bash
#Insérer les pochettes des albums dans les tags ID3 du premier mp3 de chaque album
find . -name "*01*.mp3" | while read musique; do
coverdir="$(dirname $musique)"
eyeD3 --add-image "$coverdir"cover.jpg:FRONT_COVER "$musique"
done
ligne 4 le tiret avant "name"
ligne 6 j'ai bien séparé en 2 arguments et enlevé un /
malgré ça, je recois une erreur :
dirname: opérande supplémentaire «Floyd/1970»
Saisissez « dirname --help » pour plus d'informations.
je précise, l'arborescence est comme ça :
/home/benoit/Bureau/test/Pink Floyd/1970 - Atom Heart Mother/01 Atom Heart Mother.mp3
Hors ligne
#4 Le 13/09/2012, à 21:47
- sputnick
Re : [Résolu] [BASH] Un problème de chemin, d'espace et de quotes
Erreur de quotes corrigées.
Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. Confucius
https://sputnick.fr
Hors ligne
#5 Le 13/09/2012, à 22:18
- bassaumax
Re : [Résolu] [BASH] Un problème de chemin, d'espace et de quotes
Merci beaucoup ! Ça marche !
Pour ceux que ça intéresse, voici le script
#!/bin/bash
#Insérer les pochettes des albums dans les tags ID3 du premier mp3 de chaque album
find . -name "*01*.mp3" | while read musique; do
coverdir=$(dirname "$musique")
eyeD3 --add-image "$coverdir"/cover.jpg:FRONT_COVER "$musique"
done
Là où ce script est pratique, c'est qu'il permet à ceux qui ont un nokia d'avoir des pochettes sur leurs mp3 à condition d'avoir les fichiers .jpg dans les bons dossiers.
Encore merci sputnick
Hors ligne