Home » Système d'exploitation » script bash : dossiers récursifs et fusion de mp3

script bash : dossiers récursifs et fusion de mp3

512-TerminalAujourd’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 !

Posté dans Système d'exploitation, Ubuntu

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.