Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/09/2012, à 21: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 smile

Dernière modification par bassaumax (Le 13/09/2012, à 23:46)

Hors ligne

#2 Le 13/09/2012, à 21: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, à 22:46)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 13/09/2012, à 22: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, à 22:47

sputnick

Re : [Résolu] [BASH] Un problème de chemin, d'espace et de quotes

Erreur de quotes corrigées.


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#5 Le 13/09/2012, à 23: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 big_smile

Hors ligne