Résolu le 14-04-23 Un bash de traitement pour fichiers CUE

Postez ici vos scripts Bash, Python, etc.
Avatar du membre
Nerva
Messages : 376
Enregistré le : lun. 4 mars 2019 18:48

Un bash de traitement pour fichiers CUE

Message par Nerva »

Bonjour.

J'utilise shntool pour traiter les fichiers CUE afin d'extraire les FLAC en fichiers individuels. La commande est la suivante :

Code : Tout sélectionner

shntool split -t "%p - %t" -f "Fichier.cue" -o flac "Fichier.flac"
Ça oblige à ouvrir le terminal dans le dossier concerné et à remplacer "Fichier" par le nom du CUE et du FLAC.

Ce que je voudrais c'est donc un bash qui propose une invite d'ouverture de dossier et ensuite de fichier CUE (sachant que les noms du CUE et du FLAC sont toujours identiques) afin de procéder au traitement sans avoir à saisir le nom.

Merci.
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

Avatar du membre
cyrille
Administrateur du site
Messages : 12448
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Un bash de traitement pour fichiers CUE

Message par cyrille »

Très en vitesse je suis au taf

Mais tu passer à ton script bash en paramètre 1 le chemin vers le dossier et en paramètre 2 le nom du fichier

ce qui donnerait un truc du style

Code : Tout sélectionner

monScript.sh /home/toto/mon/repertoire/de/zik superNomDeFichier
Tu récupères ces paramètres dans le variables $1 et $2 (bien sûr je te conseille de tester leur existence au lancement du script)
Puis un cd pour te postionner dans le répertoire de travail (test son existence également)

Code : Tout sélectionner

cd $1
Puis pour ton nom de fichier un truc style (test leur existence également)

Code : Tout sélectionner

shntool split -t "%p - %t" -f "$2.cue" -o flac "$2.flac"
Je ne sais pas si ça répond à tes attentes
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12448
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Un bash de traitement pour fichiers CUE

Message par cyrille »

Après reflexion c'est peut etre plus ça que tu cherchais

Ex

Code : Tout sélectionner

ls test
aze.clue  aze.flac  azer.clue  azer.flac  qsd.clue  qsd.flac

Ne recupérer que le nom en 1 exemplaire

Code : Tout sélectionner

ls test | sed 's/.\{5\}$//' | sort | uniq -d
aze
azer
qsd
Bien sur tu le colles sur une boucle bash qui gère chaque nom les uns après les autres ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12448
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Un bash de traitement pour fichiers CUE

Message par cyrille »

Donc un truc de ce style devrait faire l'affaire

Code : Tout sélectionner

cat flac.sh
#!/bin/bash

cd $1

for file in $(ls | sed 's/.\{5\}$//' | sort | uniq -d)
do
    # echo "fichier : $file"
    shntool split -t "%p - %t" -f "$file.cue" -o flac "$file.flac"
done
Appel :

Code : Tout sélectionner

bash flac.sh /chemin/rep/travail
A toi d'ajouter les tests et de peaufiner ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
Nerva
Messages : 376
Enregistré le : lun. 4 mars 2019 18:48

Re: Un bash de traitement pour fichiers CUE

Message par Nerva »

J'ai essayé avec ton dernier bash. Après validation, j'ai le caractère > qui clignote dans le terminal.
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

Avatar du membre
cyrille
Administrateur du site
Messages : 12448
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Un bash de traitement pour fichiers CUE

Message par cyrille »

tu peux faire voir ton fichier avec un

Code : Tout sélectionner

cat tonScript.sh
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
Nerva
Messages : 376
Enregistré le : lun. 4 mars 2019 18:48

Re: Un bash de traitement pour fichiers CUE

Message par Nerva »

Retour :

Code : Tout sélectionner

cat flac.sh
#!/bin/bash

cd $1

for file in $(ls | sed 's/.\{5\}$//' | sort | uniq -d)
do
    # echo "fichier : $file"
    shntool split -t "%p - %t" -f "$file.cue" -o flac "$file.flac"
done
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

Avatar du membre
cyrille
Administrateur du site
Messages : 12448
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Un bash de traitement pour fichiers CUE

Message par cyrille »

Déjà vire la première ligne, c'est la commande d'affichage du script

Code : Tout sélectionner

cat flac.sh
Tu pourrais m'envoyer un ou deux fichier flac cue que je teste ?

si soucis c'est dans la ligne (la tienne ;)

Code : Tout sélectionner

    shntool split -t "%p - %t" -f "$file.cue" -o flac "$file.flac"
Essaye de la commenter et décommente

Code : Tout sélectionner

     echo "fichier : $file"
Tu verras ça passe

COmment lances tu le script ?
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
Nerva
Messages : 376
Enregistré le : lun. 4 mars 2019 18:48

Re: Un bash de traitement pour fichiers CUE

Message par Nerva »

Le seul FLAC/CUE que j'ai sous la main pèse à peu près 1 GO. Donc pour l'envoyer... :l

J'ai supprimé la première ligne, rien n'a changé. Mais il semblerait que le problème vienne des espaces et caractères "spéciaux". J'ai testé en renommant tout et ça passe. Mais ça oblige néanmoins à saisir le chemin manuellement...
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

Avatar du membre
cyrille
Administrateur du site
Messages : 12448
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Un bash de traitement pour fichiers CUE

Message par cyrille »

Mais il semblerait que le problème vienne des espaces et caractères "spéciaux".
Tu peux donner un exemple précis, ça doit se gérer ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Répondre