Re-salut à tous,
J'aurais encore une petite question pour améliorer - encore - le super-script d'Enicar. En effet, certains des titres de mes albums comportent un slash, et ce slash a pour effet de bloquer le script. Voici un exemple:
philippine@debian:~/musique/6 Prêt à charger/Haydn - Symphonies n°91 & 92 - René
Jacobs$ ~/.sauvegarder_tags.sh
/home/philippine/.sauvegarder_tags.sh: ligne 27: Haydn - Symphonie n°92 en Sol majeur, Hob.I/92 - René Jacobs_tags_album.txt: Aucun fichier ou dossier de ce type
philippine@debian:~/...
Le coupable est clairement le slash qui est là: Symphonie n°92 en Sol majeur, Hob.I/92. Question: comment faire pour qu'il soit ignoré ou transformé en un autre caractère?
Pour mémoire je remets le script entier:
#! /bin/bash
set -e
set -u
files_exist () {
[ -e "$1" ]
}
# On génère 1 fichier de tags par fichier flac
find . -type f -iname '*.flac' -exec metaflac --export-tags-to={}_tags.txt {} \;
IFS=
# Ensuite on parcourt les répertoires
find -type d -print0 |while read -rd '' directory
do
cd "${directory}"
if files_exist *_tags.txt; then
# pour chaque fichier tags
for f in *_tags.txt; do
# On extrait le nom de l'album
album="$(sed -n /^album=/s/^album=//p <${f})"
# On copie le fichier de tags à la fin du fichier de l'album
cat "${f}" >>"${album}_tags_album.txt"
# On ajoute une nouvelle ligne.
echo >>"${album}_tags_album.txt"
done
# On efface les fichiers *_tags.txt, mais on garde
# les fichiers *_tags_album.txt !
rm -f *_tags.txt
fi
cd -
done
#en cas de fausse manip'
#find . -name "*.txt" -delete
#sauvegarde des fichiers tags
#find . -iname '*album.txt' -exec mv -f {} . "/chemin/dossier" \;
Merci
Dernière modification par Philippine (12-04-2016 07:58:56)