Aujourd’hui, j’ai envie de partager un script bash que j’ai pu créer par moi-même.
C’est un ensemble de 2 scripts que j’ai compilé, et qui me permet d’aller dans plusieurs dossiers (de manière récursif), et qui fusionne les mp3 contenu dans chaque dossiers.
Je vais, tout d’abord, vous présenter les 2 scripts de bases, puis vous présenter le script final.
Comment fusionner les MP3
Il est possible de fusionner les mp3 d’un dossier grâce à une ligne de code :
cat *.mp3 > fusion.mp3
Avec ceci, on récupère un fichier mp3 nommé « fusion.mp3 » qui contient dans l’ordre alphabétique des musiques du dossier dans lequel on se trouve.
Parcourir récursivement plusieurs répertoires
Ce deuxième script, celui qui parcours récursivement les répertoires pour y faire un traitement quelconque, et plus complexe. Le voici :
#!/bin/sh for i in *; do if [ -d "$i" ]; then echo "$i" fi done
Ce script nous donne la liste des sous-dossiers du dossier courant.
Script final
Mon script permet d’aller dans un dossier particulier, puis fait en sorte de parcourir tous ces sous-dossiers pour y fusionner les mp3.
Si vous avez une collection de musique sur votre ordinateur (comme votre collection de CD), ce script vous permet de faire une compilation de chacun de vos CD en quelques secondes.
Voici le code de mon script final :
#!/bin/bash # fusion-mp3.sh # On récupère le nom du dossier principal echo -n "Nom du dossier à récupérer ? " read dossier # On rentre dans ce dossier cd $dossier echo "Dossier principal : $dossier" #récupère les noms des sous-dossiers for i in *; do # Pour chaque dossiers, fusionne tous les mp3 if [ -d "$i" ]; then echo "Sous-dossier : $i. OK" cd "$i" cat *.mp3 > "$i".mp3 cd .. fi done
Il ne reste plus qu’à aller sur un logiciel de son (par exemple Audacity), pour modifier les propriétés du fichier compilé. Par propriétés, j’entends les données comme le titre, les noms de l’artiste et de l’album, l’année de production, etc…
Bien sur, ce script n’est pas parfait, et ne convient pas forcément à 100% à ce que vous rechercher.
Par exemple, il ne vous permet pas d’aller dans des dossiers qui possèdent des caractères vide. Par exemple : « David Guetta » en possède 1, alors que « David-Guetta » n’en possède pas.
Ensuite, a la fin du script, chaque fichier « fusion.mp3 » se trouve dans le dossier de la compilation. Le mieux est de faire en sorte que ce fichier fusionné se retrouve dans un dossier spécifique.
Profitez bien de ce script, et Enjoy !