Vous n'êtes pas identifié(e).
Seulement,elle pose deux petits problèmes:
1°) Il faut se placer dans le répertoire contenant les fichier *.flac. Comment faire pour que la commande concerne tous les sous-dossiers d'un répertoire?
2°) Même dans ces conditions, voilà le résultat de la commande:
Voilà, donc s'il faut sélectionner un par un chaque fichier, la manip' perd très nettement de son intérêt. Auriez-vous des idées?
Merci
Edit - smolski
Mise en conformité avec les balises du forum
Voir le tuto : Le code, ça pique moins les yeux en couleur
Aboulez le point choco df !
@Philippine tu peux voir l'écriture de ces balises en ouvrant ton post par Modifier en bas à droite (nul n'est parfait...).
Dernière modification par Philippine (12-04-2016 11:11:05)
Hors ligne
Tu auras autant de fichiers de tags que de fichiers .flac.
Après tu peux concaténer tout ça au besoin avec la commande cat :
Hors ligne
pour trouver que la commande est du type
Donc la commande que tu m'as donnée pose problème, parce que metaflac ne sait pas quels fichiers il doit traiter, on dirait bien?
Petit test pour voir comment ça fonctionne:
/home/philippine/musique/undossierauchoix$
Là ça marche, j'ai bien un fichier tags.txt, mais uniquement pour le dernier fichier flac du répertoire (on avance...). Mais comment indiquer à metaflac que je veux tous les fichiers flac de tous les sous-dossiers, sans qu'il ne m'envoie paître?
Edit - smolski
Mise en conformité des balises commande user.
Ça avance Philippine, merci.
Dernière modification par Philippine (03-12-2015 14:54:28)
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
avec ce résultat:
(message répété autant de fois qu'il y a de fichiers flac dans le dossier.
Je pensais avoir été claire, pardon si ce n'est pas le cas.
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
pour trouver que la commande est du type
metaflac [fichier FLAC] --option.
Ah ok, une commande qui positionne l'argument avant les options, j'ai rarement vu ça, d'autant que n'ayant pas metaflac installé chez moi j'avais trouvé ça :
http://linux.die.net/man/1/metaflac
Bref, dans ce cas tu as juste à inverser dans la ligne de commande :
Ça utilisera le retour de find qui va trouver tous les fichier .flac, pour chacun d'eux ça va extraire les tags et les inscrire dans un fichier à son nom.
Ainsi Highway_To_Hell.flac aura ses tags dans Highway_To_Hell_tag.txt.
Dans ton cas, il vaudrait peut-être mieux utiliser une redirection directe et se passer de l'option --export-tag-to= :
Petit test pour voir comment ça fonctionne:
cd /home/philippine/musique/undossierauchoix
/home/philippine/musique/undossierauchoix$
metaflac *.flac --export-tags-to=tags.txt
Là ça marche, j'ai bien un fichier tags.txt, mais uniquement pour le dernier fichier flac du répertoire (on avance...).
C'est normal que tu n'aies qu'un seul fichier flac car la commande aura enregistré sucessivement les tags dans le même fichier mais en écrasant.
Hors ligne
Ah ok, une commande qui positionne l'argument avant les options, j'ai rarement vu ça, d'autant que n'ayant pas metaflac installé chez moi j'avais trouvé ça :
http://linux.die.net/man/1/metaflac
Oui, je l'avais trouvé celui-là; mais la doc' n'est pas très explicite sur les fichiers multiples...
Bref, dans ce cas tu as juste à inverser dans la ligne de commande :
for f in $(find . -type f -iname *.flac) ; do metaflac $f --export-tag-to=$f_tag.txt ; done
Ça utilisera le retour de find qui va trouver tous les fichier .flac, pour chacun d'eux ça va extraire les tags et les inscrire dans un fichier à son nom.
Ainsi Highway_To_Hell.flac aura ses tags dans Highway_To_Hell_tag.txt.
Dans ton cas, il vaudrait peut-être mieux utiliser une redirection directe et se passer de l'option --export-tag-to= :for f in $(find . -type f -iname *.flac) ; do metaflac $f >> mes_tag_flac.txt ; done
C'est normal que tu n'aies qu'un seul fichier flac car la commande aura enregistré sucessivement les tags dans le même fichier mais en écrasant.
Hum, merci, mais les deux commandes que tu me donnes donnent le même résultat:
Je veux bien utiliser mon sens de la logique, mais encore faut-il s'entendre sur les termes employés. Qu'est-ce qu'il entend par "expression"???
Dernière modification par Philippine (03-12-2015 16:23:48)
Hors ligne
Avec cette commande, plus de message d'erreur, mais le fichier mes_tag_flac.txt est vide.
Hors ligne
Note bien les {} autour du f qui permet de dire à bash que la
variable à substituer est f et non f_tag qui n'existe pas,
et qui donne donc pour nom de fichier « .txt ». J'ai aussi rajouté des
autour des chaines à substituer comme les noms de fichiers avec espaces
ne poseront pas de problèmes.
En ligne
Sinon les noms sont « splités » aux espaces qui servent de délimiteur pour les noms
de fichiers.
Dernière modification par enicar (03-12-2015 19:47:21)
En ligne
Juste une petite question: est-ce que vous avez testé ces commandes avant de me les proposer? Parce que si c'est le cas et si ça marche sur vos bécanes, il faut que je cherche ce qui ne va pas sur ma config'...
Au fait, merci beaucoup pour ta pédagogie, et pour les explications en petits caractères. Hélas, je ne maîtrise pas les bases de cette syntaxe, et suis incapable de localiser l'erreur...
Hors ligne
Voilà en rajoutant des ' autour de *.flac, tu ne devrais plus avoir ce messages d'erreur.
Enfin, il serait bon aussi de chercher à comprendre comment ça marche et pourquoi
ça ne marche pas quand c'est le cas…
Dernière modification par enicar (03-12-2015 20:48:51)
En ligne
En ligne
Enfin, il serait bon aussi de chercher à comprendre comment ça marche et pourquoi
ça ne marche pas quand c'est le cas…
Je suis bien d'accord avec toi, mais tout le monde n'a pas la possibilité d'apprendre le langage php (même si ce n'est pas la mer à boire au bout du compte).
Voilà le retour de ta commande, je sens que je vais m'immerger dans les tutos du Site du Zéro
Hors ligne
m'a appris que ce n'est pas --export-tag-to mais
--export-tags-to
Donc la commande devient :
Je suis bien d'accord avec toi, mais tout le monde n'a pas la possibilité d'apprendre le langage php (même si ce n'est pas la mer à boire au bout du compte).
En l'occurence ce n'est pas du php mais du bash
En ligne
Hors ligne
Tu peux vérifier si le fichier est lisible :
et vérifier si c'est un fichier flac (l'extension ne veut pas dire grand chose) :
Dernière modification par enicar (04-12-2015 11:41:05)
En ligne
Hors ligne
Ou avec d'autres fichiers. Remarque bien les ' autour du nom de
fichier pour protéger les espaces dans le nom de fichier. Sinon
metaflac va recevoir plusieurs noms de fichiers qui n'existent
probablement pas !
Soit dit en passant, je trouve très moche quand les noms de fichiers
comportent une espace avant le point avant l'extension ( « …Noturno .flac)
Mais bon ce n'est pas ça qui doit poser un problème.
En ligne
find va rajouter un ./ au début de chaque nom de fichier et en plus
il va rajouter le chemin complet des fichiers qui correspondent à la
recherche relativement au répertoire courant. C'est ce nom avec chemin
que vaudra la variable f dans la boucle for.
Dernière modification par enicar (04-12-2015 12:46:23)
En ligne
qui devrait le même résultat que la commande du post précédent (#21).
En ligne
Dernière modification par Philippine (05-12-2015 14:38:34)
Hors ligne
En effet, il y a quelque chose qui se passe avec la boucle for qui
fait que ça ne fonctionne pas. D'ailleurs on ne devrait pas utiliser
find de cette manière, à mon humble avis.
En ligne
Bash met toutes les noms de fichiers trouvés par find séparés par des retour
à la ligne dans une seule chaine. Et effectivement ce fichier n'existe pas !
Seulement si on ne met pas ces " la liste des fichiers est « splitée » au
niveau des espaces, et comme tes noms de fichiers comportent des espaces,
ça ne fonctionne pas.
Ce qui prouve bien qu'il ne faut pas utiliser find de cette façon
En ligne